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

上传人:b****6 文档编号:21231934 上传时间:2023-01-28 格式:DOCX 页数:7 大小:58.51KB
下载 相关 举报
数据结构课程单链表实验报告Word下载.docx_第1页
第1页 / 共7页
数据结构课程单链表实验报告Word下载.docx_第2页
第2页 / 共7页
数据结构课程单链表实验报告Word下载.docx_第3页
第3页 / 共7页
数据结构课程单链表实验报告Word下载.docx_第4页
第4页 / 共7页
数据结构课程单链表实验报告Word下载.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

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

《数据结构课程单链表实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《数据结构课程单链表实验报告Word下载.docx(7页珍藏版)》请在冰豆网上搜索。

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

插入、删除、查找等运算,能够灵活应用链表这种数据结构,深入对链表链式结构的了解。

三.源程序代码

#include<

stdio.h>

stdlib.h>

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->

while(p);

Statusinsert(linklist&

l,inti,Elemtypee)//插入操作

intj=0;

linklistp=l,s;

while(j<

i-1&

&

p)

++j;

if(!

p||j>

i-1)

return-1;

else

s=(node*)malloc(sizeof(node));

s->

data=e;

next=p->

next=s;

return1;

Statusdelect(linklist&

l,inti,Elemtype&

e)//删除操作

linklistp=l,q;

while(j<

p->

next)

p=p->

if(!

p->

next||j>

else

q=p->

next=q->

e=q->

data;

free(q);

return1;

voidcombine(linklistla,linklistlb)//合并单链表

node*pa,*pb,*pc;

linklistlc;

pa=la->

pb=lb->

lc=pc=la;

while(pa&

pb){

if(pa->

data<

=pb->

data){

pc->

next=pa;

pc=pa;

pa=pa->

}

else{pc->

next=pb;

pc=pb;

pb=pb->

pc->

next=pa?

pa:

pb;

free(lb);

StatusGetElem(linklistl,inti,Elemtype&

e)//查找操作

intj;

p=l->

j=1;

while(p&

j<

i)

return-2;

e=p->

returne;

voidmain()

linklistla,lb;

intn;

inti,j;

Elemtypee;

请输入第一个链表:

输入链表元素的个数:

scanf("

n);

la=creat(n);

输出链表:

output(la);

请输入要查找元素的位置:

i);

j=GetElem(la,i,e);

所要查找的元素是%d\n"

j);

请输入插入位置和元素:

%d%d"

i,&

e);

insert(la,i,e);

插入后的链表:

printf("

请输入要删除的位置:

scanf("

delect(la,i,e);

删除的那个元素是:

%d\n"

e);

输出删除后的顺序表:

output(la);

请输入第一个非递减链表:

请输入第二个非递减链表:

lb=creat(n);

output(lb);

combine(la,lb);

输出合并后的链表:

运行结果如下:

六、结果分析与思考

关于单链表的建立要比顺序表难懂,单链表的建立有头插法和尾插法两种,我选用的是尾插法,尾插法较之头插法更为简单和使用,一定要熟练使用。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1