第4周项目2 建设“单链表”算法库
来源:互联网 发布:vx软件 编辑:程序博客网 时间:2024/05/20 19:29
问题及代码:
/*文件名称:main.cpp linklist.h linklist.cpp
*作者:郑孚嘉
*问题描述:
算法库包括两个文件:
头文件:linklist.h,包含定义顺序表数据结构的代码、宏定义、要实现算法的函数的声明;
源文件:linklist.cpp,包含实现各种算法的函数的定义
请采用程序的多文件组织形式,建立如上的两个文件,另外再建立一个源文件(如main.cpp),编制main函数,完成相关的测试工作。
测试工作可以采用“渐进”的思路,每次涉及的函数应该尽可能少。
*/
1)linklist.h
#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);//插入数据void DispList(LinkList *L); //输出节点数据
2)linklist.cpp
#include "linklist.h"void InitList(LinkList *&L){ L=(LinkList *)malloc(sizeof(LinkList)); L->next=NULL;}void DestroyList(LinkList *&L){ LinkList *pre=L,*p=L->next; while(p!=NULL) { free(pre); pre=p; p=pre->next; } free(pre);}bool ListInsert(LinkList *&L,int i,ElemType e){ int j=0; LinkList *p=L,*s; while(j<i-1&&p!=NULL) { j++; p=p->next; } if(p==NULL) { return false; } else { s=(LinkList *)malloc(sizeof(LinkList)); s->data=e; s->next=p->next; p->next=s; return true; }}void DispList(LinkList *L){ LinkList *p=L->next; while(p!=NULL) { printf("%d ",p->data); p=p->next; } printf("\n");}
3)main.cpp
#include "linklist.h"int main(){ LinkList *L; InitList(L); ListInsert(L, 1, 15); ListInsert(L, 1, 10); ListInsert(L, 1, 5); ListInsert(L, 1, 20); DispList(L); DestroyList(L); return 0;}
运行结果:
知识点总结:
如同建立顺序表算法库一样,把链表的初始化,销毁,插入数据和输出数据的函数写到linklist.cpp中,通过main函数测试。
0 0
- 第4周 项目2 建设“单链表”的算法库
- 第4周实践项目2--建设“单链表”算法库
- 第4周项目2-建设“单链表”算法库
- 【第4周 项目2 - 建设“单链表”算法库】
- 第4周 项目2-建设“单链表”算法库
- 第4周、项目2—建设“单链表”算法库
- 第4周项目2- 建设“单链表”算法库
- 第4周实践项目2--建设“单链表”算法库
- 第4周项目2 建设“单链表”算法库
- 第4周 项目2 - 建设“单链表”算法库
- 第4周 项目2 - 建设“单链表”算法库
- 第4周 项目2 建设“单链表”的算法库
- 第4周项目2建设“单链表”算法库
- 第4周项目2 建设“单链表”算法库
- 第4周 项目2-建设“单链表”算法库
- 第4周实践项目2--建设“单链表”算法库
- 第4周实践项目2--建设“单链表”算法库
- 第4周项目2-建设“单链表”算法库
- [python] 网络编程之套接字Socket、TCP和UDP通信实例
- 第三周 项目3-单链表应用 .
- hdu 1556 Color the ball(线段树 区间更新单点查询)
- 第六周项目一~~~建立顺序栈算法库
- 移动应用开发必备工具盘点
- 第4周项目2 建设“单链表”算法库
- Spring实战(第3版)读书总结
- Check if paper-checkbox is checked
- 第四周项目4-建立双链表算法库
- javascript中bind()函数实现和应用以及多次bind的结果和参数位置的思考
- 手动为sublime text3添加package control插件
- ./configure -build,-host,-target设置
- 面试再谈struct和union大小问题
- 第3周项目4 顺序表应用问题(1)