欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构线性表实验报告剖析.docx

    • 资源ID:17248013       资源大小:133.41KB        全文页数:15页
    • 资源格式: DOCX        下载积分:6金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要6金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构线性表实验报告剖析.docx

    1、数据结构线性表实验报告剖析成绩:实 验 报 告课程名称:数据结构实验名称:线性表的顺序实现和链式实现姓 名:专 业:计算机科学与技术班 级:学 号:计算机科学与技术学院实验教学中心2016 年 11月 29日实验项目名称:线性表的顺序实现和链式实现一、实验目的1理解顺序表的结构特点及有关概念,掌握顺序表建立、插入、删除的基本操作算法。2理解单链表的结构特点及有关概念,掌握单链表建立、插入、删除的基本操作算法。二、实验内容1.顺序表操作内容1.1建立n个元素的顺序表,实现顺序表建立的基本操作。1.2在指定位置插入一个元素,实现顺序表插入的基本操作。1.3在顺序表中删除指定位置上的元素,实现顺序表

    2、的删除的基本操作。2.链式表操作内容2.1建立一个包括头结点和3个结点的(4,2,1)的单链表,实现单链表建立的基本操作。2.2在已建好的单链表中的指定位置(x=2)插入一个结点3,实现单链表插入的基本操作。2.3在一个包括头结点和4个结点的(4,3,2,1)的单链表的指定位置删除一个结点,实现单链表删除的基本操作。三、实验用设备仪器及材料计算机及CodeBlocks编程软件。四、实验原理利用C语言实现五、实验操作步骤1.顺序表的实现及操作代码#include#include#define LIST_INIT_SIZE 100#define LISTINCREMENT 10#define OK

    3、 1#define ERROR -1#define OVERFLOW -2typedef int ElemType;typedef int Status;typedef struct ElemType *elem; int length; int listsize; SqList;Status InitList_Sq(SqList &L) L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType); if(!L.elem)exit(OVERFLOW); L.length=0; L.listsize=LIST_INIT_SIZE; retur

    4、n OK;Status ListInsert_Sq(SqList &L,int i,ElemType e) if(iL.length+1) return ERROR; if(L.length=L.listsize) ElemType *newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType); if(!newbase)exit(OVERFLOW); L.elem=newbase; L.listsize += LISTINCREMENT; ElemType *q=&(L.elemi-1); for(

    5、ElemType *p=&(L.elemL.length-1); p=q; -p) *(p+1)=*p; *q=e; +L.length; return OK;Status ListDelete_Sq(SqList &L,int i,ElemType &e) if(iL.length+1) return ERROR; ElemType *p=&L.elemi-1; e=*p; ElemType *q=L.elem+L.length-1; for(+p;p=q;+p) *(p-1)=*p; -L.length; return OK;Status LocateElem_Sq(SqList L,El

    6、emType e, Status(*compare)(ElemType,ElemType) int i=1; ElemType *p=L.elem; while(i=L.length&!(*compare)(*p+,e)+i; if(i=L.length) return i; else return 0;Status compare(ElemType a,ElemType b) if(a=b) return OK; else return 0;void MergeList_Sq(SqList La,SqList Lb,SqList&Lc) ElemType *pa=La.elem,*pb=Lb

    7、.elem,*pc; Lc.listsize=Lc.length=La.length+Lb.length; Lc.elem=(ElemType*)malloc(Lc.listsize*sizeof(ElemType); if(!Lc.elem)exit(OVERFLOW); ElemType *pa_last=La.elem+La.length-1; ElemType *pb_last=Lb.elem+Lb.length-1; while(pa=pa_last&pb=pb_last) if(*pa=*pb)*pc+=*pa+; else *pc+=*pb+; while(pa=pa_last)

    8、 *pc+=*pa+; while(pb=pb_last) *pc+=*pb+; void ClearList_Sq(SqList &L) if(L.length!=0) L.length=0;void DestoryList_Sq(SqList &L) if(L.elem!=0) free(L.elem); L.elem=NULL;void ListSort_Sq(SqList &L,int Sta,int End) ElemType tmp; for(int i=Sta-1;iEnd-1;i+) for(int j=i+1;jL.elemj) tmp=L.elemi; L.elemi=L.

    9、elemj; L.elemj=tmp; void prin(SqList &L) printf(当前线性表元素依次是:n); for(int i=0;iL.length;i+) printf(%d ,L.elemi); printf(nn);int main() int n,m,t; SqList L; InitList_Sq(L); printf(请输入要建立线性表的大小n:n); scanf(%d,&n); printf(请依次输入线性表元素:n); for(int i=1;i=n;i+) scanf(%d,&m); ListInsert_Sq(L,i,m); while(true) pr

    10、intf(请选择操作(输入0退出操作):n1、排序元素; 2、删除元素; 3、插入元素;n); scanf(%d,&t); if(t=0)break; else if(t=1) int Sta,End; printf(请输入要排序元素的起始终止位置:n); scanf(%d%d,&Sta,&End); ListSort_Sq(L,Sta,End); prin(L); else if(t=2) int loc,val; printf(请输入要删除元素的位置:n); scanf(%d,&loc); ListDelete_Sq(L,loc,val); printf(删除元素的值:%dn,val);

    11、prin(L); else if(t=3) int loc,val; printf(请输入要插入元素的位置及元素值:n); scanf(%d%d,&loc,&val); ListInsert_Sq(L,loc,val); prin(L); return 0;2.链式表的实现及操作#include#include#define LIST_INIT_SIZE 100#define LISTINCREMENT 10#define OK 1#define ERROR -1#define OVERFLOW -2typedef int ElemType;typedef int Status;typedef

    12、 struct LNode ElemType data; struct LNode *next;LNode,*LinkList;Status GetElem_L(LinkList L,int i,ElemType &e) LNode *p=L-next; int j=1; while(p&jnext;j+; if(!p|ji) return ERROR; e=p-data; return OK;Status ListInsert_L(LinkList &L,int i,ElemType e) LNode *p=L; int j=0; while(p&jnext;+j; if(!p|ji-1)

    13、return ERROR; LNode *s=(LinkList)malloc(sizeof(LNode); s-data=e; s-next=p-next; p-next=s; return OK;Status ListDelete_L(LinkList &L,int i,ElemType &e) LNode *p=L; int j=0; while(p-next&jnext; +j; if(!p-next|ji-1) return ERROR; LNode *q=p-next; p-next=q-next; e=q-data; free(q); return OK;void CreateL

    14、ist_L(LinkList &L,int n) L=(LinkList)malloc(sizeof(LNode); L-next=NULL; LNode *q; q=L; for(int i=n;i0;i-) LNode *p=(LinkList)malloc(sizeof(LNode); scanf(%d,&p-data); q-next=p; p-next=NULL; q=p; void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc) LNode *pc,*pa=La-next,*pb=Lb-next; Lc=pc=La; whil

    15、e(pa&pb) if(pa-datadata) pc-next=pa;pc=pa;pa=pa-next; else pc-next=pb;pc=pb;pb=pb-next; pc-next=pa?pa:pb; free(pb); void prin(LinkList &L) LNode *p=L-next; printf(当前线性表的元素依次是:n); while(p) printf(%d ,p-data); p=p-next; printf(nn);int main() int n,t; LinkList L; printf(请输入要建立线性表的大小n:n); scanf(%d,&n);

    16、printf(请依次输入每个元素的值:n); CreateList_L(L,n); while(true) printf(请选择操作(输入0退出操作):n1、删除元素; 2、插入元素;n); scanf(%d,&t); if(t=0)break; else if(t=1) int loc,val; printf(请输入要删除元素的位置:n); scanf(%d,&loc); ListDelete_L(L,loc,val); printf(删除元素的值:%dn,val); prin(L); else if(t=2) int loc,val; printf(请输入要插入元素的位置及元素值:n); scanf(%d%d,&loc,&val); ListInsert_L(L,loc,val); prin(L); return 0;六、实验结果分析1.顺序表代码运行截图2.链式表代码运行截图


    注意事项

    本文(数据结构线性表实验报告剖析.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开