(第四周项目3)单链表应用
来源:互联网 发布:ecshop2.7.3破解优化 编辑:程序博客网 时间:2024/05/09 14:02
完成下面的应用时,除项目中给出的特殊要求,其余工作均可利用项目2完成的算法支持。
1、设计一个算法,将一个带头结点的数据域依次为a1,a2,…,an(n≥3)的单链表的所有结点逆置,即第一个结点的数据域变为an,…,最后一个结点的数据域为a1。实现这个算法,并完成测试。
提示:实现算法时,可以设计下面的函数:void Reverse(LinkList *&L)
2、已知L1和L2分别指向两个单链表的头结点,且已知其长度分别为m、n,请设计算法将L2连接到L1的后面。实现这个算法,完成测试,并分析这个算法的复杂度。
提示:实现算法时,可以设计下面的函数:void Link(LinkList &L1, LinkList &L2)
3、设计一个算法,判断单链表L是否是递增的。实现这个算法,并完成测试。
1.
void Reverse(LinkList *&L){ LinkList *p=L->next,*q; L->next=NULL; while (p!=NULL) //扫描所有的结点 { q=p->next; //让q指向*p结点的下一个结点 p->next=L->next; //总是将*p结点作为第一个数据结点 L->next=p; p=q; //让p指向下一个结点 }}
main
int main(){ LinkList *L; ElemType a[]= {1,2,3,4,5}; CreateListR(L,a,5); Reverse(L); DispList(L); DestroyList(L); return 0;}
结果
2.
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的头节点}
#include"list.h"int main(){LinkList *A, *B; int i; ElemType a[]= {1,3,2,9}; ElemType b[]= {0,4,7,6,5,8}; InitList(A);CreateListR(A,a,4);CreateListR(B,b,6); /*for(i=3; i>=0; i--) ListInsert(A, 1, a[i]); InitList(B); for(i=5; i>=0; i--) ListInsert(B, 1, b[i]);//也对...*/ Link(A, B); printf("A:"); DispList(A); DestroyList(A);return 0;}
结果
3.
bool Tell(LinkList *&L){LinkList *p = L,*q=L->next;while(p->next != NULL) //找到L1的尾节点{if(p->data<q->data){p = q;q=q->next;}elsereturn false;}return true;}
main
#include"list.h"int main(){LinkList *A, *B; int i; ElemType a[]= {1,3,2,9}; InitList(A);CreateListR(A,a,4); if(Tell(A)){DispList(A);printf("增\n");}else{DispList(A);printf("不增\n");} DestroyList(A);return 0;}
结果
总结
code blocks cpp文件新建要选择两个编译选项...
第一个程序还不很理解。现在依旧不理解。
第二个程序不用加length,这个是线性表的特点。
L->next是第一个数据节点。
0 0
- 第四周项目3 单链表应用3
- 第四周--项目3-单链表应用3
- 第四周 项目3 单链表应用(3)
- 第四周项目3--单链表应用3
- 第四周-项目3-单链表应用
- 第四周 项目3-单链表应用
- 第四周项目3—单链表应用
- 第四周 项目3--单链表应用1
- 第四周项目3-单链表应用(1)
- 第四周项目3-单链表应用
- 第四周项目(3):单链表应用
- 第四周项目3--单链表应用(2)
- 第四周项目3-单链表的应用
- (第四周项目3)单链表应用
- 第四周 项目3-单链表应用1
- 第四周 项目3 单链表应用
- 第四周项目3 单链表的应用
- 第四周项目3 单链表的应用
- 进程间通信方式
- 《程序员面试金典》--狗猫收容所
- 常用的代码收集,没有任何技术含量,只是填坑的积累
- 程序员学习能力提升三要素
- 你的职场身价值几何?
- (第四周项目3)单链表应用
- Android四大基本组件——Content Provider
- boost:asio学习心得
- UVA 11796 Dog Distance(二维几何基本模板)
- asterisk制作RPM包教程
- 数据结构实践——自建算法库链栈
- 第四周,项目2-建设“单链表”算法库。
- 改变UITableView的headerView、footerView背景颜色
- 第6周项目1—建立顺序栈算法库