数据结构与算法实验报告Word文档下载推荐.docx
- 文档编号:21263404
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:12
- 大小:131.42KB
数据结构与算法实验报告Word文档下载推荐.docx
《数据结构与算法实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构与算法实验报告Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
2.编程实现把顺序表中从i个元素开始的k个元素删除(数据类型为整型)。
三:
实验过程及步骤
源代码:
#include<
stdio.h>
malloc.h>
#defineLIST_INIT_SIZE100
#defineLISTINCREMENT10
typedefstruct{
int*elem;
intlength;
intlistsize;
}SqList;
//SqListsq;
voidInitList_Sq(SqList*sq)//初始化列表
{
sq->
elem=(int*)malloc(LIST_INIT_SIZE*sizeof(int));
length=0;
listsize=LIST_INIT_SIZE;
printf("
---申请空间成功---!
\n"
);
}
voidGetElem(SqList*sq,inti)//获取第i位置元素的值
{
int*p;
p=&
(sq->
elem[i-1]);
%d"
*p);
intListInsert_Sq(SqList*sq,inti,inta)//在i位置之前插入a
int*p,*q;
if(i<
=0||i>
length+1)
---位置不合法---!
return0;
if(sq->
length>
=sq->
listsize)
int*newbase=(int*)realloc(sq->
elem,(sq->
listsize+LISTINCREMENT)*sizeof(int));
if(!
newbase)
申请空间溢出\n"
elem=newbase;
listsize+=LISTINCREMENT;
//p指向第i位置的元素
q=&
elem[sq->
length-1]);
//q指向最后一个元素
for(;
q>
=p;
--q)*(q+1)=*q;
*p=a;
++sq->
length;
return1;
intListDelete_Sq(SqList*sq,inti)//删除i位置上的值
1||i>
length)return0;
q=sq->
elem+sq->
length-1;
for(++p;
p<
=q;
++p)
*(p-1)=*p;
--sq->
voidvisit(SqList*sq)//输出数据
inti=1;
i<
i++)
elem[i-1];
"
voidmain()
inti=1,a=0,boo=1,number=0;
SqLists,*sq;
sq=&
s;
InitList_Sq(sq);
初始化空表\n"
输入数据个数:
scanf("
&
number);
输入%d个数据:
"
number);
=number;
a);
if(boo=ListInsert_Sq(sq,i,a))
---插入成功!
---\n"
else
---插入不成功,重新插入---!
i=i-1;
输出所有元素\n"
visit(sq);
输出删除的位置:
if(boo=ListDelete_Sq(sq,a))
---数据删除成功!
}else
---没有删除成功---\n"
输出所有元素:
输出要显示数据的位置:
输出%d位置数值\n"
a);
if(a<
0||a>
length)
---输出位置的数据不存在---\n"
GetElem(sq,a);
步骤:
1.初始化空表
2.顺序插入数据后输出所有元素
3.选择删除位置,删除数据后输出所有元素
4.选择查看的数据位置,输出选择查看的数据
四:
实验结果及分析
分析:
本程序在实现顺序存储插入以及删除i个元素开始的k个元素删除(数据类型为整型)。
之外在删除、查看是实时输出结果,并且可以查看希望显示数据的位置。
树
实验二:
树
掌握二叉树,二叉树排序数的概念和存储方法。
掌握二叉树的遍历算法。
熟练掌握编写实现树的各种运算的算法。
统计一棵二叉树中每种类型节点数(度为0/1/2的节点数)。
stdlib.h>
typedefstructBitNode{
intdata;
structBitNode*lchild,*rchild;
}BitNode,*BitTree;
BitTreeBitTreeInit(){
BitTreeBT;
BT=(BitNode*)malloc(sizeof(BitNode));
BT=NULL;
returnBT;
}
BitTreeBitTreeCreat(BitTree&
BT){
intch;
printf("
请输入节点的内容,输入0时结束建立!
scanf("
ch);
if(ch==0)
else{
BT=(BitTree)malloc(sizeof(BitNode));
BT->
data=ch;
BitTreeCreat(BT->
lchild);
rchild);
voidBitTreeEmpty(BitTreeBT){
if(BT==NULL)
树为空!
else
树非空!
voidPreOrderTraverse(BitTreeBT){
if(BT!
=NULL){
树结点的内容为:
%d\n"
BT->
data);
PreOrderTraverse(BT->
voidInOrderTraverse(BitTreeBT){
InOrderTraverse(BT->
voidPostOrderTraverse(BitTreeBT){
PostOrderTraverse(BT->
intcount(BitTreeBT){
return0;
j);
switch(j){
case1:
BT=BitTreeInit();
树已经初始化!
break;
case2:
BitTreeCreat(BT);
case3:
BitTreeEmpty(BT);
case4:
PreOrderTraverse(BT);
case5:
InOrderTraverse(BT);
case6:
PostOrderTraverse(BT);
case7:
l=BinTreeDepth(BT);
树的深度为:
l);
case8:
l=count(BT);
树的结点数为:
case9:
BinTreeClear(BT);
树已经清空!
case0:
exit(0);
1.选择进行的操作
2.初始化、建立、判断树是否空、先/中/后序遍历、求深度/结点,清空树
3.显示结果
本程序不仅可以统计一棵二叉树中每种类型节点数(度为0/1/2的节点数)。
同时让他有以下功能:
1.初始化一棵树。
2.建立一棵树。
3.判断树是否为空。
4.分别按先/中/后序遍历树。
5.求树的深度。
6.求树的结点数。
7.清空树。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 实验 报告