数据结构实验报告合工大Word文档格式.docx
- 文档编号:13316982
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:53
- 大小:277.33KB
数据结构实验报告合工大Word文档格式.docx
《数据结构实验报告合工大Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告合工大Word文档格式.docx(53页珍藏版)》请在冰豆网上搜索。
enumerror_code
{
success,overflow,underflow
};
classstack
public:
stack();
boolempty()const;
error_codeget_top(DATA_TYPE&
x)const;
error_codepush(constDATA_TYPEx);
error_codepop();
boolfull()const;
private:
DATA_TYPEdata[MAXLEN];
intcount;
stack:
:
stack()
count=0;
}
boolstack:
empty()const
returncount==0;
error_codestack:
get_top(DATA_TYPE&
x)const
if(empty())
returnunderflow;
else
x=data[count-1];
returnsuccess;
push(constDATA_TYPEx)
if(full())
returnoverflow;
data[count]=x;
count++;
pop()
count--;
full()const
returncount==MAXLEN;
voidmain()
stackS;
intN,d;
cout<
<
"
请输入一个十进制数N和所需转换的进制d"
endl;
cin>
>
N>
d;
if(N==0)
输出转换结果:
N<
while(N)
S.push(N%d);
N=N/d;
while(!
S.empty())
S.get_top(N);
N;
S.pop();
S.get_top(x);
x;
测试数据:
N=1348d=8
运行结果:
2.给出顺序队列的类定义和函数实现,并利用队列计算并打印辉三角的前n行的容。
(n=8)
实验原理:
辉三角的规律是每行的第一和最后一个数是1,从第三行开始的其余的数是上一行对应位置的左右两个数之和。
因此,可用上一行的数来求出对应位置的下一行容。
为此,需要用队列来保存上一行的容。
每当由上一行的两个数求出下一行的一个数时,其中的前一个便需要删除,而新求出的数就要入队。
程序清单:
success,underflow,overflow
classqueue
queue();
error_codeget_front(DATA_TYPE&
error_codeappend(constDATA_TYPEx);
error_codeserve();
intfront,rear;
queue:
queue()
rear=0;
front=0;
boolqueue:
return(front%MAXLEN==rear%MAXLEN);
error_codequeue:
get_front(DATA_TYPE&
x=data[front%MAXLEN];
append(constDATA_TYPEx)
data[rear%MAXLEN]=x;
rear++;
serve()
front++;
return((rear+1)%MAXLEN==front);
queueQ;
intnum1,num2;
inti=0;
1<
Q.append
(1);
num1=0;
num2=1;
for(i=0;
i<
=7;
i++)
intj=0;
intk=0;
for(j=0;
j<
=i;
j++)
Q.get_front(num2);
Q.serve();
num1+num2<
"
;
Q.append(num1+num2);
num1=num2;
3.给出链栈的类定义和函数实现,并设计程序完成如下功能:
读入一个有限大小的整数n,并读入n个数,然后按照与输入次序相反的次序输出各元素的值。
依次将栈中的元素出栈,因为栈的一个特点就是先进后出,。
这样,当将原栈为空时,输出与输入次序相反,从而实现了本题的要求。
typedefstructLNode
DATA_TYPEdata;
LNode*next;
}LNode;
range_error,success,underflow
classlinkstack
linkstack();
~linkstack();
LNode*top;
DATA_TYPEdata;
linkstack:
linkstack()
top=NULL;
boollinkstack:
return(count==0);
error_codelinkstack:
LNode*s=newLNode;
s->
data=x;
next=top;
top=s;
x=top->
data;
LNode*u=newLNode;
u=top;
top=top->
next;
deleteu;
~linkstack()
empty())
pop();
linkstackL;
intn;
请任意输入一个整数n:
n;
for(inti=1;
=n;
L.push(i);
L.empty())
L.get_top(i);
L.pop();
n=9i=1
实验二:
单链表
理解线性表的链式存储结构。
熟练掌握动态链表结构及有关算法的设计。
根据具体问题的需要,设计出合理的表示数据的链表结构,并设计相关算法。
实验任务:
在一个递增有序的链表L中插入一个值为x的元素,并保持其递增有序特性。
1.实验数据:
链表元素为(10,20,30,40,50,60,70,80,90,100),x分别为25,85,110和8。
给出了要插入的条件,但没有给定插入位置。
因此,需要搜索满足这一条件的插入位置的前驱结点而不是序号。
程序清单:
typedefstructsnode
intdata;
structsnode*next;
}node;
enumerror_code{arrange_error,success};
classlist
list();
voidcreate2();
intlength()const;
error_codeget_element(constinti,int&
x)const;
error_codeinsert(constint&
x);
error_codedelete_element(constinti);
node
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 报告 合工大