ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

单链表表的合并(C语言描述)

2021-06-18 21:01:28  阅读:194  来源: 互联网

标签:单链 LB LA int next LinkList 表表 printf C语言


```language #include #define OK 1 #define ERROR 0 typedef int ElemType; typedef int Status; // 定义单链表 typedef struct LNode { ElemType data; struct LNode *next; }*LinkList; //初始化单链表 Status InitList(LinkList &L) { L = new LNode; L->next = NULL; return OK; } //尾插法创建单链表 void CreateList(LinkList &L, int n) { LinkList p,mei; L = new LNode; L->next = NULL; mei = L; for (int i = 1; i <= n; ++i) { p = new LNode; printf("请输入第%d个元素: ", i); scanf_s("%d", &p->data); p->next = NULL; mei->next = p; mei = mei->next; } } //根据下标查找元素 Status GetElem(LinkList L, int i, ElemType &e) { LinkList p; int j = 1; p = L->next; while (p && j < i) { p = p->next; ++j; } if (!p || j > i) { //printf("下标%d元素没有找到\n", i); return ERROR; } e = p->data; //printf("下标%d的元素是%d\n", i, e); return e; } //根据给定元素查单链表 Status LocateElem(LinkList L, ElemType e) { LinkList p; p = L->next; int j = 1; while (p && p->data != e) { p = p->next; ++j; } if (!p) { //printf("没有找到元素%d\n", e); return ERROR; } //printf("元素%d的下标是%d\n", e, j); return OK; } //尾插法 Status ListInsert(LinkList &L, ElemType e) { LinkList p; p = L; int j = 0; while (p->next != NULL ) { p = p->next; //++j; } LinkList s; s = new LNode; s->data = e; s->next = NULL; p->next = s; return OK; } //链表合并 void Union(LinkList &LA, LinkList &LB, int n, int m) { int e, a; for (int i = 1; i <= n; i++) { e = GetElem(LB, i, e); a = LocateElem(LA, e); if (a != 1) ListInsert(LA, e); } } //打印单链表 void PrintList(LinkList L) { LinkList p; p = L->next; while (p) { printf("%d ", p->data); p = p->next; } printf("\n"); } int main() { int m, n, e = 888; LinkList LA, LB; InitList(LA); InitList(LB); printf("请输入LA元素个数m: "); scanf_s("%d", &m); CreateList(LA, m); PrintList(LA); printf("请输入LB元素个数n: "); scanf_s("%d", &n); CreateList(LB, n); PrintList(LB); Union(LA, LB, n, m); PrintList(LA); } ``` 运行结果如下所示: ![image.png](http://www.icode9.com/i/li/?n=2&i=images/20210618/1624020553789728.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

标签:单链,LB,LA,int,next,LinkList,表表,printf,C语言
来源: https://blog.51cto.com/u_437549/2926651

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有