首页 > 编程语言 > 详细

数据结构(c++)写法

时间:2019-09-11 13:58:43      阅读:86      评论:0      收藏:0      [点我收藏+]

单链表的建立

技术分享图片

 

 


 

 

 本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。

输入以-1 作为结束

 

技术分享图片
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 typedef struct LNode *List;
 5 struct LNode
 6 {
 7   int data;
 8   LNode *next;    
 9  };
10  
11 void InitList(List &L)
12 {
13     L = new LNode;
14     L->next = NULL;
15 }
16 
17 void CreatList(List &L)
18 {
19     List r,s;
20     s = L;
21     int a;
22     while(1)
23     {
24         cin >> a;           //输出以-1作为结束 
25         if(a == -1)         //尾插法 
26         break;
27         r = new LNode;
28         r->data = a;
29         r->next =NULL;
30         s->next = r;
31         s = r;
32     }
33     s->next = NULL;
34 }
35 
36 void PrintList(List &L)
37 {
38   List p;
39   p = L->next;
40   while(p)
41   {
42       cout << p->data << " ";
43       p = p->next;
44   }
45 }
46 
47 void mergeList(List &L1,List &L2)
48 {
49     List pa,pb,pc,lc;
50     pa = L1->next;
51     pb = L2->next;
52     lc = new LNode; //新建头结点 
53     pc = lc;        // pc指向 lc 
54     while(pa&&pb)
55     {
56         if(pa->data <= pb->data) 
57         {
58             pc->next = pa;
59             pc = pa;
60             pa = pa->next;
61         }
62         else
63         {
64             pc->next = pb;
65             pc = pb;
66             pb = pb->next;    
67         }
68     }
69     pc->next = pa?pa:pb;// 将pa或pb 没有遍历完的串 串入pc 
70     free(L1);  //释放掉L1,L2 
71     free(L2);  //如果要输出NULL 则 L1->NULL 
72     PrintList(lc); 
73 }
74 
75 int main()
76 {
77     List a,b;
78     InitList(a);
79     CreatList(a);
80     InitList(b);
81     CreatList(b);
82     mergeList(a,b);
83     return 0; 
84     
85 }
合并单链表

 

运行结果

技术分享图片

 

 总结

1.每个链表都有一个头节点,该头节点数据无意义,只有指向下一节点的指针有效。
2.List L=new LNode代表了一个链表,L为指向头节点的指针
3.通常对链表的操作通过新创建一个指针p=L来操作链表的增删查找(头指针代表一个链表,其值不能改变)。

 


 

数据结构(c++)写法

原文:https://www.cnblogs.com/invokerrr/p/11503098.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!