数据结构实验报告Word文档下载推荐.docx
- 文档编号:13551912
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:39
- 大小:119.41KB
数据结构实验报告Word文档下载推荐.docx
《数据结构实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告Word文档下载推荐.docx(39页珍藏版)》请在冰豆网上搜索。
3、保存程序的运行结果,并结合程序进行分析。
4、按照你对链表操作需要,重新改写算法并运行,实现链表的插入、删除、查找等运算,并保存运行结果。
四、程序流程图、算法与运行结果
1-1
#include"
stdio.h"
stdlib.h"
#defineMAXSIZE100
structSeqList
{
intdata[MAXSIZE];
intlength;
};
typedefstructSeqList*PSeqList;
PSeqListcreaeNullList_seq()
PSeqListpalist=(PSeqList)malloc(sizeof(structSeqList));
if(palist!
=NULL)
{
palist->
length=0;
return(palist);
}
printf("
Outofspace!
!
\n"
);
returnNULL;
}
intisNullList_seq(PSeqListpalist)
return(palist->
length==0);
intinsertPre_seq(PSeqListpalist,intp,intx)
intq;
if(palist->
length>
=MAXSIZE)
overflow!
return(0);
if(p<
0||p>
palist->
length)
Notexist!
if(isNullList_seq(palist))
data[0]=x;
length=1;
return
(1);
for(q=palist->
length-1;
q>
=p;
q--)
data[q+1]=palist->
data[q];
data[p]=x;
length=palist->
length+1;
voidmain()
inti;
PSeqListlist;
list=creaeNullList_seq();
插入前的顺序表为:
\n"
for(i=0;
i<
=9;
i++)
insertPre_seq(list,i,i*i);
%d"
list->
data[i]);
insertPre_seq(list,5,55);
\n插入后的顺序表为:
list->
length;
getch();
1-2
/*插入*/
/*删除*/
intdeletePre_seq(PSeqListpalist,inti)
intj;
if(!
palist)
{
printf("
表不存在"
return(-1);
}
if(i<
1||i>
palist->
length)
printf("
删除位置不合法"
}
for(j=i;
j<
length;
j++)
data[j-1]=palist->
data[j];
palist->
length--;
return
(1);
/*检索ElementType*/
intlocationPre_seq(PSeqListpalist,intx)
inti=0;
if(!
{
return(-1);
while(i<
length&
&
data[i]!
=x)
i++;
if(i>
=palist->
length)return0;
elsereturn(i+1);
插入前的顺序表为:
\n插入后的顺序表为:
删除前的顺序表为:
deletePre_seq(list,5);
\n删除后的顺序表为:
=8;
if(locationPre_seq(list,9)==0)
检索的容不存在!
"
if(locationPre_seq(list,9)!
=0&
locationPre_seq(list,9)!
=-1)
检索的容下标为:
%d"
locationPre_seq(list,9));
实验二栈的基本操作
掌握栈的基本操作:
初始化栈、判栈为空、出栈、入栈等运算。
1.认真阅读和掌握本实验的算法。
2.上机将本算法实现。
3.保存程序的运行结果,并结合程序进行分析。
利用栈的基本操作实现将任意一个十进制整数转化为R进制整数
算法为:
1、定义栈的顺序存取结构
2、分别定义栈的基本操作(初始化栈、判栈为空、出栈、入栈等)
3、定义一个函数用来实现上面问题:
(1)十进制整数X和R作为形参
(2)初始化栈
(3)只要X不为0重复做下列动作
将X%R入栈,X=X/R
(4)只要栈不为空重复做下列动作
栈顶出栈,输出栈顶元素
2-1
#include<
stdio.h>
stdlib.h>
malloc.h>
#definestack_init_size100
#definestackincrement10
typedefstructsqstack
int*base;
int*top;
intstacksize;
}sqstack;
intStackInit(sqstack*s)
s->
base=(int*)malloc(stack_init_size*sizeof(int));
if(!
s->
base)
return0;
top=s->
base;
stacksize=stack_init_size;
return1;
intPush(sqstack*s,inte)
if(s->
top-s->
base>
=s->
stacksize)
base=(int*)realloc(s->
base,(s->
stacksize+stackincrement)*sizeof(int));
base+s->
stacksize;
stacksize+=stackincrement;
*(s->
top++)=e;
returne;
intPop(sqstack*s,inte)
top==s->
e=*--s->
top;
intstackempty(sqstack*s)
else
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 报告