1.连接两个单向链表,排序后输出!写出代码!
2.C语言能不能进行面向对象程序设计和编程?为什么?

解决方案 »

  1.   

    C语言中没有类不能进行面向对象程序设计和编程
    C++可以进行面向对象程序设计和编程P1,P2暂定为两个链表的头且两链表有序(这很容易做到)
    while(p1)
    {
    while(p1->data>p2->data&&p2)
    {
    int *q;
    q=p1->next;
    p1->next=p2;
    p2->next=q;
    p2=p2->next;
    p1=p->next->next;
    }
    while(p1->next->data<=p2->data&&p1)
    {
    int *q;
    q=p1->next;
    p1->next=p2;
    p2->next=q;
    p1=p1->next;
    p2=p2->next->next;
    }
    }
    就这么个思路.......直接写的没有调试...LZ参考下吧(用C写的...JAVA实现起来要简单得多)
      

  2.   

    2.C语言能不能进行面向对象程序设计和编程?为什么?可以..但是实现起来比较复杂..自己可以baidu一下就知道了..
      

  3.   

    public class Linked { /**
     * @author lybjust
     * 
     * 实现了一个链表的插入,查询,打印,
     * 两个链表链接功能
     * 仅供参考
     */
    int length;
    ListNode firstNode; public void connect(Linked L, Linked T) {
    ListNode p1 = L.firstNode; // 遍历L链表,p1指向L头部
    ListNode p2 = T.firstNode; // 遍历T链表,p2指向T头部
    while (p1.link != null) {
    p1 = p1.link; // 直到尾端
    }
    p1.link = p2;
    } public void insertLastNode(String item) {
    ListNode N = new ListNode();
    N.item = item;
    N.link = null;
    if (firstNode == null) {
    firstNode = N;
    } else {
    ListNode p = firstNode; // 遍历链表
    while (p.link != null) {
    p = p.link; // 直到尾端
    }
    p.link = N;
    }
    length++;
    } public void insertSecondNode(String item) {
    ListNode newNode = new ListNode();
    newNode.item = item;
    newNode.link = firstNode.link;
    firstNode.link = newNode;
    } public void print() {
    ListNode N = firstNode;
    while (N != null) {
    System.out.print(N.item);
    N = N.link;
    if (N != null) {
    System.out.print(",");
    }
    }
    } public void size() {
    System.out.println(length);
    } public void printItem(int i) {
    ListNode p = firstNode;
    int j = i;
    while ((i > 1) && (p != null)) {
    p = p.link;
    i--;
    }
    if (i == 1 && (p != null)) {
    System.out.println(p.item);
    }
    } public static void main(String[] args) {
    // TODO Auto-generated method stub
    Linked L = new Linked(); //第一个链表
    L.insertLastNode("A");
    L.insertLastNode("C");
    L.insertLastNode("D");
    L.insertSecondNode("B"); //实现一个从中间插入节点 Linked T = new Linked(); //第二个链表
    T.insertLastNode("a");
    T.insertLastNode("c");
    T.insertLastNode("d");
    T.insertSecondNode("b"); //实现一个从中间插入节点 System.out.println("链表合并前:");
    L.print();
    System.out.println("");
    System.out.println("链表合并后:");
    L.connect(L, T);
    L.print();
    }}