数据结构链表的实现和应用_第1页
数据结构链表的实现和应用_第2页
数据结构链表的实现和应用_第3页
数据结构链表的实现和应用_第4页
数据结构链表的实现和应用_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

江南大学物联网工程学院上机报告课程名称 数据结构 上机名称 链表的实现和应用 上机日期 2016-3-11班 级 计科 1505 姓 名 学号 上机报告要求 1上机名称 2上机要求 3上机环境 4程序清单(写明运行结果) 5上机体会 1. 上机名称链表的实现和应用2. 上机要求 定义线性表的链式存储表示;基于所设计的存储结构实现线性表的基本操作;编写一个主程序对所实现的线性表进行测试;线性表的应用:设线性表 L1 和 L2 分别代表集合 A 和 B,试设计算法求 A 和 B 的并集 C,并用线性表L3 代表集合 C;设线性表 L1 和 L2 中的数据元素为整数,且均已按值非递减有序排列,试设计算法对 L1和 L2 进行合并,用线性表 L3 保存合并结果,要求 L3 中的数据元素也按值非递减有序排列。设计一个一元多项式计算器,要求能够:输入并建立多项式;输出多项式;执行两个多项式相加;执行两个多项式相减;(选做)执行两个多项式相乘。3. 上机环境 VC6.04.程序清单(写明运行结果) 程序1: #include #include#include#include #define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1typedef int Status;typedef int Boolean;typedef int ElemType;struct LNodeElemType data;struct LNode *next;typedef struct LNode *LinkList;Status InitList(LinkList *L)*L=(LinkList)malloc(sizeof(struct LNode); if(!*L) exit(OVERFLOW);(*L)-next=NULL; return OK;Status DestroyList(LinkList *L)LinkList q;while(*L)q=(*L)-next;free(*L);*L=q;return OK;Status ClearList(LinkList L) LinkList p,q;p=L-next;while(p) q=p-next;free(p);p=q;L-next=NULL; return OK;Status ListEmpty(LinkList L)if(L-next)return FALSE;elsereturn TRUE;int ListLength(LinkList L)int i=0;LinkList p=L-next;while(p) i+;p=p-next;return i;Status GetElem(LinkList L,int i,ElemType *e) int j=1;LinkList p=L-next; while(pj+;if(!p|ji) return ERROR;*e=p-data; return OK;int LocateElem(LinkList L,ElemType e,Status(*compare)(ElemType,ElemType)int i=0;LinkList p=L-next;while(p)i+;if(compare(p-data,e) return i;p=p-next;return 0;Status PriorElem(LinkList L,ElemType cur_e,ElemType *pre_e)LinkList q,p=L-next; while(p-next) q=p-next; if(q-data=cur_e)*pre_e=p-data;return OK;p=q; return INFEASIBLE;Status NextElem(LinkList L,ElemType cur_e,ElemType *next_e)LinkList p=L-next; while(p-next)if(p-data=cur_e)*next_e=p-next-data;return OK;p=p-next;return INFEASIBLE;Status ListInsert(LinkList L,int i,ElemType e)int j=0;LinkList p=L,s;while(pj+;if(!p|ji-1) return ERROR;s=(LinkList)malloc(sizeof(struct LNode); s-data=e;s-next=p-next;p-next=s;return OK;Status ListDelete(LinkList L,int i,ElemType *e) int j=0;LinkList p=L,q;while(p-nextj+;if(!p-next|ji-1) return ERROR;q=p-next;p-next=q-next;*e=q-data;free(q);return OK;Status ListTraverse(LinkList L,void(*vi)(ElemType) LinkList p=L-next;while(p)vi(p-data);p=p-next;printf(“n“);return OK;Status equal(ElemType c1,ElemType c2) if(c1=c2)return TRUE;elsereturn FALSE;void Union(LinkList La,LinkList Lb) ElemType e;int La_len,Lb_len;int i;La_len=ListLength(La); Lb_len=ListLength(Lb);for(i=1;i #include #include #include #include #define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1typedef int Status; typedef int Boolean;typedef int ElemType;struct LNodeElemType data;struct LNode *next;typedef struct LNode *LinkList; Status InitList(LinkList *L)*L=(LinkList)malloc(sizeof(struct LNode); if(!*L) exit(OVERFLOW);(*L)-next=NULL; return OK;Status DestroyList(LinkList *L) LinkList q;while(*L)q=(*L)-next;free(*L);*L=q;return OK;Status ClearList(LinkList L) LinkList p,q;p=L-next; while(p) q=p-next;free(p);p=q;L-next=NULL; return OK;Status ListEmpty(LinkList L) if(L-next) return FALSE;elsereturn TRUE;int ListLength(LinkList L) int i=0;LinkList p=L-next; while(p) i+;p=p-next;return i;Status GetElem(LinkList L,int i,ElemType *e) int j=1;LinkList p=L-next; while(pj+;if(!p|ji)return ERROR;*e=p-data;return OK;int LocateElem(LinkList L,ElemType e,Status(*compare)(ElemType,ElemType) int i=0;LinkList p=L-next;while(p)i+;if(compare(p-data,e) return i;p=p-next;return 0;Status PriorElem(LinkList L,ElemType cur_e,ElemType *pre_e) LinkList q,p=L-next; while(p-next) q=p-next;if(q-data=cur_e)*pre_e=p-data;return OK;p=q; return INFEASIBLE;Status NextElem(LinkList L,ElemType cur_e,ElemType *next_e) LinkList p=L-next;while(p-next) if(p-data=cur_e)*next_e=p-next-data;return OK;p=p-next;return INFEASIBLE;Status ListInsert(LinkList L,int i,ElemType e) int j=0;LinkList p=L,s;while(p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论