第四周项目3 - 单链表应用2
2016-09-29 10:11
309 查看
问题及代码
运行结果
知识点总结:
应用了单链表的插入。
学习心得:
要熟练掌握单链表的基本应用
<pre name="code" class="cpp">/* * Copyright(c) 2016, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称: 666.cpp * 作 者:王曼 * 完成日期:2016年9月29日 * 版 本 号:v1.0 * * 问题描述: 已知L1和L2分别指向两个单链表的头结点,且已知其长度分别为m、n,请设计算法将L2连接到L1的后面。实现这个算法,完成测试,并分析这个算法的复杂度。 * 输入描述:L1,L2 * 程序输出:链接后的链表L1 */
<span style="font-size:12px;">#include <stdio.h> #include <malloc.h> typedef int ElemType; typedef struct LNode //定义单链表结点类型 { ElemType data; struct LNode *next; //指向后继结点 }LinkList; void InitList(LinkList *&L); //初始化线性表 void DestroyList(LinkList *&L); //销毁线性表 bool ListInsert(LinkList *&L,int i,ElemType e); //插入数据元素 int ListLength(LinkList *L); //求线性表长度 void DispList(LinkList *L); //输出线性表 void InitList(LinkList *&L) { L=(LinkList *)malloc(sizeof(LinkList)); //创建头结点 L->next=NULL; } void DestroyList(LinkList *&L) { LinkList *p=L,*q=p->next; while (q!=NULL) { free(p); p=q; q=p->next; } free(p); //此时q为NULL,p指向尾结点,释放它 } void DispList(LinkList *L) { LinkList *p=L->next; while (p!=NULL) { printf("%d ",p->data); p=p->next; } printf("\n"); } void Link(LinkList *&L1, LinkList *&L2) { LinkList *p = L1; while(p->next != NULL) //找到L1的尾节点 p = p->next; p->next = L2->next; //将L2的首个数据节点连接到L1的尾节点后 free(L2); //释放掉已经无用的L2的头节点 } bool ListInsert(LinkList *&L,int i,ElemType e) { int j=0; LinkList *p=L,*s; while (j<i-1 && p!=NULL) //查找第i-1个结点 { j++; p=p->next; } if (p==NULL) //未找到位序为i-1的结点 return false; else //找到位序为i-1的结点*p { s=(LinkList *)malloc(sizeof(LinkList));//创建新结点*s s->data=e; s->next=p->next; //将*s插入到*p之后 p->next=s; return true; } } int main() { LinkList *m, *n; int i; ElemType a[]= {1,9,2,8}; ElemType b[]= {3,5,7,4,6,0}; InitList(m); for(i=3; i>=0; i--) ListInsert(m, 1, a[i]); InitList(n); for(i=5; i>=0; i--) ListInsert(n, 1, b[i]); Link(m, n); printf("链接成功后的m:"); DispList(m); DestroyList(m); return 0; } </span>
运行结果
知识点总结:
应用了单链表的插入。
学习心得:
要熟练掌握单链表的基本应用
相关文章推荐
- 第四周 项目3-单链表的应用1
- 第四周-项目3-单链表应用
- 第四周 项目三-单链表的应用
- 第四周项目3—单链表应用(2)
- 第四周项目3 单链表的应用
- 第四周项目3-单链表的应用
- 第四周项目3-单链表应用
- 第四周实践项目~单链表应用(2)
- 第四周项目三-单链表的应用(3)
- 第四周上机实践项目3(2)——单链表应用
- 第四周 项目3-单链表的应用2
- 第四周 项目3-单链表应用
- 第四周项目3-单链表的应用(2)
- 第四周 项目3-单链表应用1
- 第四周上机实践—项目3(2)—单链表的应用 实现算法并分析复杂度
- (第四周项目3)单链表应用
- 第四周项目3-单链表的应用递增判断
- 第四周 项目3-单链表的应用3
- 第四周项目3 单链表的应用
- 第四周项目3—单链表应用