数据结构与算法实验报告线性表Word文件下载.docx

上传人:b****6 文档编号:19778168 上传时间:2023-01-10 格式:DOCX 页数:17 大小:67KB
下载 相关 举报
数据结构与算法实验报告线性表Word文件下载.docx_第1页
第1页 / 共17页
数据结构与算法实验报告线性表Word文件下载.docx_第2页
第2页 / 共17页
数据结构与算法实验报告线性表Word文件下载.docx_第3页
第3页 / 共17页
数据结构与算法实验报告线性表Word文件下载.docx_第4页
第4页 / 共17页
数据结构与算法实验报告线性表Word文件下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数据结构与算法实验报告线性表Word文件下载.docx

《数据结构与算法实验报告线性表Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构与算法实验报告线性表Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。

数据结构与算法实验报告线性表Word文件下载.docx

然后根据屏幕菜单的选择,可以进行数据的插入或删除,并在插入或删除数据后,再输出单链表;

本实验要求分别写出在单链表中第i(从1开始计数)个位置之后插入元素、创建单链表、在单链表中删除第i个位置的元素、顺序输出单链表的内容等的算法描述。

四、实验过程及结果分析

顺序表:

#include<

stdio.h>

stdlib.h>

#defineSIZE100

intL=0;

structnumber

{

longnum;

};

/*------------------创建顺式线性表------------------*/

structnumber*creat(void)

structnumber*head,*p1;

p1=head=(structnumber*)malloc(SIZE*sizeof(structnumber));

scanf("

%ld"

&

p1->

num);

for(;

num!

=0;

L++)

{

p1++;

scanf("

}

return(head);

}

/*------------------输出顺式线性表中的元素------------------*/

voidprint(structnumber*head)

structnumber*p;

ints=L;

p=head;

if(p!

=0)

printf("

\n您输入的数据为:

\n"

);

for(;

s>

0;

p++,s--)

printf("

%ld"

p->

/*------------------查找顺式线性表中的元素------------------*/

voidsearch(structnumber*head)

longnum1;

intn=0,s=0;

printf("

\n请输入您要查找的数据:

num1);

if(head!

p->

p++)

{

n++;

if(p->

num==num1)

{

s=1;

break;

}

}

if(s==0)

\n没有您所要查找的数据\n"

else

\n找到您所需数据'

%ld'

在表中第%d个\n"

num1,n);

/*------------------插入顺式线性表的元素------------------*/

structnumber*insert(structnumber*head)

structnumber*p1,*p2;

intn=1;

p1=p2=head;

p2=p2+L-1;

\n请输入您要插入的数据:

num1);

if(num1<

p2->

num)

for(p1=head;

num<

num1;

p1++)

n++;

p2>

=p1;

p2--)

(p2+1)->

num=p2->

num;

(p2+1)->

num=num1;

L++;

/*------------------删除顺式线性表的元素------------------*/

structnumber*del(structnumber*head)

\n请输入要删除的数据:

=num1&

&

n<

=L;

n=n+1;

if(n>

L)

\n没有您要删除的数据\n"

return(0);

else

p1<

=p2;

p1->

num=(p1+1)->

L--;

voidmain()

structnumber*head,*head1,*head2;

inta;

/*head=creat();

print(head);

*/

\n************************************\n"

按1:

创建\n"

按2:

插入\n"

按3:

查找\n"

按4:

删除\n"

按5:

输出\n"

按0:

退出\n"

*************************************\n"

%d"

a);

while(a!

switch(a)

case1:

printf("

请创建顺序表:

"

head=creat();

break;

case2:

head1=insert(head);

case3:

search(head);

case4:

head2=del(head);

case5:

print(head);

case0:

\n继续操作请输入,否则请按0退出:

图1

图2

链表:

#include"

stdio.h"

malloc.h"

typedefstructnode

intdata;

structnode*next;

}LNode,*LinkList;

intlen;

/*------------------创建链式线性表------------------*/

LinkListCreatLink()

intx,count=0;

LinkListp,q,h;

h=NULL;

p=(LinkList)malloc(sizeof(LNode));

x);

p->

data=x;

next=NULL;

while(x!

count++;

if(count==1)

q=h=p;

q->

next=p;

q=p;

returnh;

/*------------------删除链式线性表的元素------------------*/

LinkListdel(LinkListh,intdata)

LinkListp1,p2;

if(h==NULL)

\nlistnull!

returnh;

p1=h;

while(data!

=p1->

data&

next!

=NULL)

p2=p1;

p1=p1->

next;

if(data==p1->

data)

if(p1==h)

h=p1->

elsep2->

next=p1->

delete:

%ld\n"

data);

len=len-1;

elseprintf("

%ldnotbeenfound!

return(h);

/*------------------输出链式线性表的元素------------------*/

voidPrintLink(LNode*h)

LNode*p;

p=h;

while(p!

%d"

data);

p=p->

/*------------------计算链式线性表的长度------------------*/

intLinkLen(LinkListh)

LinkListp=h;

intcount=0;

returncount;

/*------------------查找链式线性表中的元素------------------*/

LinkListQueryLink(LinkListh,intx)

LinkListq,p;

q=p=h;

if(p->

data==x)

break;

returnq;

returnNULL;

/*------------------向链式线性表插入元素------------------*/

LinkListInsertLink(LinkListh,inti,intx)

LinkListp,q;

intj;

if(i==0)

next=h;

h=p;

q=h;

j=1;

while(q!

=NULL&

j<

i)

j++;

q=q->

if(q!

next=q->

nofound\n"

returnh;

LinkListh,p;

intx,a;

请按菜单进行操作!

********************\n"

按1:

创建链表\n"

按2:

插入元素\n"

按3:

链表长度\n"

按4:

查找元素\n"

按5:

删除元素\n"

按6:

输出链表\n"

按0:

退出运行\n"

请选择操作:

switch(a)

case1:

请输入:

h=CreatLink();

创建链表成功!

break;

case2:

请输入要插入的元素:

scanf("

h=InsertLink(h,1,x);

case3:

len=LinkLen(h);

该链表的长度为:

len);

case4:

请输入要查找的元素:

p=QueryLink(h,x);

find=%d\n"

next->

\n请输入要删除的元素:

if(x!

h=del(h,x);

case6:

输出链表:

PrintLink(h);

case0:

\n继续操作请选择,退出请安0\n"

图3

图4

五、成绩评定

及格

不及格

出勤

内容

格式

创新

效果

总评

指导教师:

年月日

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

当前位置:首页 > 外语学习 > 英语考试

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

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