1 / 12
文档名称:

数据结构课程单链表实验报告.docx

格式:docx   大小:58KB   页数:12页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构课程单链表实验报告.docx

上传人:在水一方 2019/3/30 文件大小:58 KB

下载得到文件列表

数据结构课程单链表实验报告.docx

相关文档

文档介绍

文档介绍:羁袇羄蚁郑州轻工业学院莈蚆《数据结构》课程实验肄肂肀实验报告蚈膄蒂薈蒇芄袃芀芆莄芄螈艿蒃莁蒀题目:单链表表的基本操作及c语言实现肈专业:信息管理与信息系统薃班级:11-01螂姓名:高博文膂完成日期:2013/5/23螇薃试验内容膃用c语言实现单链表的建立插入删除查找,合并等内容蚀二、试验目的薆掌握链表的基本操作:插入、删除、查找等运算,能够灵活应用链表这种数据结构,深入对链表链式结构的了解。#include<>莂#include<>虿typedefintElemtype;螃typedefintStatus;蚀蝿typedefstructnode//定义存储节点莇{袃 intdata;//数据域肁 structnode*next;//结构体指针蒁}*linklist,node;//结构体变量,结构体名称膆linklistcreat(intn)//创建单链表***{蒂 linklisthead,r,p;//定义头指针r,p,指针罿 intx,i;腿 head=(node*)malloc(sizeof(node));//生成头结点芇 r=head;//r指向头结点羃 printf("输入数字:\n");蚁 for(i=n;i>0;i--)//for循环用于生成第一个节点并读入数据羈 {莆 scanf("%d",&x);莄 p=(node*)malloc(sizeof(node));腿 p->data=x;//读入第一个节点的数据螇 r->next=p;//把第一个节点连在头结点的后面蒆 r=p;//循环以便于生成第二个节点蒁 }袁r->next=0;//生成链表后的断开符蒆returnhead;//返回头指针薆袂}艿voidoutput(linklisthead)//输出链表蕿{蚆 linklistp;芃 p=head->next;肁 do芈 {螆 printf("%3d",p->data);蚄 p=p->next;蒈肆 }螆 while(p);螀 printf("\n");膀袅袆}膁Statusinsert(linklist&l,inti,Elemtypee)//插入操作蚈{袈 intj=0;羆linklistp=l,s;薂 while(j<i-1&&p)莀 {蚇 p=p->next;肅++j;羃 }袈 if(!p||j>i-1)莆 return-1;膅 else莄 {薀 s=(node*)malloc(sizeof(node));葿 s->data=e;芅 s->next=p->next;薁 p->next=s;节 return1;膈 }莅}羂Statusdelect(linklist&l,inti,Elemtype&e)//删除操作虿{羇 intj=0;莅linklistp=l,q;莃while(j<i-1&&p->next)蒁{螅 p=p->next;蒅++j;螃}衿螈薅袀if(!p->next||j>i-1)薁 return-1;薇else蚅{芁 q=p->next;聿 p->next=q->next;莆 e=q->data;螄 free(q);蚂 return1;螁}荿袄}bine(linklistla,linklistlb)//合并单链表艿{膈 node*pa,*pb,*pc;羄 linklistlc;蒄 pa=la->next;羁 pb=lb->next;袇 lc=pc=la;羄 while(pa&&pb){蚁 if(pa->data<=pb->data){莈 pc->next=pa;蚆 pc=pa;肄 pa=pa->next;肂}肀 else{pc->next=pb;pc=pb;pb=pb->next;}蚈膄 }蒂 pc->next=pa?pa:pb;薈 free(lb);蒇芄袃}芀StatusGetElem(linklistl,inti,Elemtype&e)//查找操作芆{莄 linklistp;芄 intj;螈 p=l->next;艿 j=1;蒃 while(p&&j<i)莁 {蒀 p=p->next;肈++j;薃 }螂 if(!p||j>i)膂 return-2;螇 e=p->data;薃 returne;膃蚀薆}蚃薄莂虿螃蚀蝿voidmain()莇{袃 linklistla,lb;肁 intn;蒁 inti,j;膆 Elemtypee;*** printf("请输入第一个链表:\n");蒂 printf("输入链表元素的个数:\n");罿 scanf("%d",&n);腿 la=creat(n);芇 printf("输出链表:\n");羃 output(la);蚁 printf("请输入要查找元素的位置:\n");羈 scanf("%d",&i);莆 j=GetEl