实验二 2Word格式文档下载.docx

上传人:b****5 文档编号:8482111 上传时间:2023-05-11 格式:DOCX 页数:13 大小:34.19KB
下载 相关 举报
实验二 2Word格式文档下载.docx_第1页
第1页 / 共13页
实验二 2Word格式文档下载.docx_第2页
第2页 / 共13页
实验二 2Word格式文档下载.docx_第3页
第3页 / 共13页
实验二 2Word格式文档下载.docx_第4页
第4页 / 共13页
实验二 2Word格式文档下载.docx_第5页
第5页 / 共13页
实验二 2Word格式文档下载.docx_第6页
第6页 / 共13页
实验二 2Word格式文档下载.docx_第7页
第7页 / 共13页
实验二 2Word格式文档下载.docx_第8页
第8页 / 共13页
实验二 2Word格式文档下载.docx_第9页
第9页 / 共13页
实验二 2Word格式文档下载.docx_第10页
第10页 / 共13页
实验二 2Word格式文档下载.docx_第11页
第11页 / 共13页
实验二 2Word格式文档下载.docx_第12页
第12页 / 共13页
实验二 2Word格式文档下载.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验二 2Word格式文档下载.docx

《实验二 2Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实验二 2Word格式文档下载.docx(13页珍藏版)》请在冰点文库上搜索。

实验二 2Word格式文档下载.docx

(6)输出单链表H中的第3个元素;

(9)输出单链表H;

(10)删除H中的第3个元素;

(11)输出单链表H;

(12)释放单链表H。

三、实验要求:

1.C完成算法设计和程序设计并上机调试通过。

2.撰写实验报告,提供实验结果和数据。

3.写出算法设计小结和心得。

三、程序源代码:

实验一

#include<

stdio.h>

malloc.h>

#defineMaxSize50

typedefcharElemType;

typedefstruct

{

ElemTypedata[MaxSize];

intlength;

}SqList;

//初始化

voidInitList(SqList*&

L)

L=(SqList*)malloc(sizeof(SqList));

L->

length=0;

}

//销毁

voidDestroyList(SqList*L)

free(L);

//判断是否为空

intListEmpty(SqList*L)

return(L->

length==0);

//判断长度

intListLength(SqList*L)

{

length);

}

//显示输出

voidDispList(SqList*L)

inti;

if(ListEmpty(L))return;

for(i=0;

i<

L->

length;

i++)

printf("

%c"

L->

data[i]);

printf("

\n"

);

intGetElem(SqList*L,inti,ElemType&

e)

if(i<

1||i>

length)

return0;

e=L->

data[i-1];

return1;

intLocateElem(SqList*L,ElemTypee)

inti=0;

while(i<

length&

&

data[i]!

=e)i++;

if(i>

=L->

else

returni+1;

//尾插法

intListInsert(SqList*&

L,inti,ElemTypee)

intj;

length+1)

i--;

//将顺序表位序转化为elem下标*/

for(j=L->

j>

i;

j--)//将data[i]及后面元素后移一个位置*/

L->

data[j]=L->

data[j-1];

data[i]=e;

length++;

//顺序表长度增1*/

intListDelete(SqList*&

L,inti,ElemType&

data[i];

for(j=i;

j<

length-1;

j++)

data[j+1];

length--;

}

voidmain()

SqList*L;

ElemTypee;

InitList(L);

ListInsert(L,1,'

a'

ListInsert(L,2,'

b'

ListInsert(L,3,'

c'

ListInsert(L,4,'

d'

ListInsert(L,5,'

e'

输出L\n"

//输出L

DispList(L);

判断长度\n"

ListLength(L)=%d\n"

ListLength(L));

//判断为空

判断是否为空\n"

ListEmpty(L)=%d"

ListEmpty(L));

if(ListEmpty(L))

当前为空\n"

else

当前不为空\n"

ListEmpty(L)=%d\n"

//定位第三个

定位第三个\n"

GetElem(L,3,e);

e=%c\n"

e);

//查找A的位置

查找A的位置\n"

LocateElem(L,'

)=%d\n"

LocateElem(L,'

));

//第四个位置插入f

第四个位置插入f\n"

f'

输出L"

//删除第三个元素

删除第三个元素\n"

ListDelete(L,3,e);

//释放空间

当前已经释放空间\n"

DestroyList(L);

实验二

typedefstructLNode

//定义单链表结点类型

ElemTypedata;

structLNode*next;

}LinkList;

voidInitList(LinkList*&

L=(LinkList*)malloc(sizeof(LinkList));

//创建头结点

next=NULL;

}

voidDestroyList(LinkList*&

LinkList*p=L,*q=p->

next;

while(q!

=NULL)

free(p);

p=q;

q=p->

free(p);

intListEmpty(LinkList*L)

next==NULL);

intListLength(LinkList*L)

LinkList*p=L;

inti=0;

while(p->

next!

i++;

p=p->

return(i);

voidDispList(LinkList*L)

LinkList*p=L->

while(p!

p->

data);

intGetElem(LinkList*L,inti,ElemType&

intj=0;

while(j<

i&

p!

j++;

if(p==NULL)

e=p->

data;

return1;

intLocateElem(LinkList*L,ElemTypee)

intn=1;

=NULL&

p->

data!

=e)

n++;

return(0);

return(n);

intListInsert(LinkList*&

LinkList*p=L,*s;

i-1&

if(p==NULL)//未找到第i-1个结点

else//找到第i-1个结点*p

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

//创建新结点*s

s->

data=e;

next=p->

//将*s插入到*p之后

p->

next=s;

intListDelete(LinkList*&

LinkList*p=L,*q;

if(p==NULL)//未找到第i-1个结点

else//找到第i-1个结点*p

//q指向要删除的结点

if(q==NULL)return0;

e=q->

next=q->

//从单链表中删除*q结点

free(q);

//释放*q结点

LinkList*H;

charD;

InitList(H);

ListInsert(H,1,'

ListInsert(H,2,'

ListInsert(H,3,'

ListInsert(H,4,'

ListInsert(H,5,'

//输出H

输出H:

"

DispList(H);

判断是否为空:

if(ListEmpty(H))

当前为空\n"

printf("

当前不为空\n"

 

//判断A的位置

判断A的位置:

intb=LocateElem(H,'

%d"

b);

//寻找地三个元素

//GetElem(H,3,D);

//printf("

第三个元素为%s"

D);

//第四位置插入f

\n第四位置插入f"

\n输出H:

//删除第三个

已经删除第三个"

ListDelete(H,3,D);

当前链表输出H:

//销毁链表

已经销毁脸链表H\n"

DestroyList(H);

四、测试结果(程序运行结果采用截图的方式打印):

实验一结果

实验二结果

五、小结(包括收获、心得体会、存在的问题及解决问题的方法、建议等)

注:

内容一律使用宋体五号字,单倍行间距

通过这次实验我掌握了用C浯言对数据结构的一些问题程序的初步编程,更加牢固掌握了数据结构的部分知识,但发现了许多问题与不足。

C语言的部分知识基本快忘完了,一些基本操作也忘了一部分,造成实验的难以继续。

其次数据结构掌握的不牢不全面,我应该在今后的日子多温习温习C语言,多看看数据结构课本,多做实验,更加好的学习数据结构。

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

当前位置:首页 > PPT模板 > 商务科技

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

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