数据结构Word文档格式.docx
《数据结构Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
栈、队的实现和运算
四、实验结果(源程序)与数据处理(程序运行结果、截图等)
·
.实验部分代码:
1.
#include<
stdio.h>
#defineMAXN26
charstack[MAXN];
inttop=0;
intpush(charx)
{if(top>
=MAXN)
return
(1);
stack[top++]=x;
return(0);
}
intpop(char*p_y)
{if(top==0)
*p_y=stack[--top];
voidmain()
{
inti;
charch_x,ch_y;
printf("
inputthecharyouwanttopush\n"
);
scanf("
%c"
&
ch_x);
while(ch_x!
='
0'
)
if(push(ch_x)==1)
failure!
\n"
else
{printf("
success!
inputacharforch_xtopush\nch_x="
getchar();
i=0;
while(stack[i]!
\0'
%c"
stack[i]);
i++;
if(pop(&
ch_y)==1)
Thepopcharis%c\n"
ch_y);
for(i=top-1;
i>
=0;
i--)
2.
#include<
malloc.h>
structnode{chardata;
structnode*link;
};
typedefstructnodeNODE;
NODE*top=NULL;
voidpush_l(charx)
{NODE*p;
p=(NODE*)malloc(sizeof(NODE));
p->
data=x;
link=top;
top=p;
intpop_l(char*p_y)
if(top==NULL)
*p_y=top->
data;
p=top;
top=top->
link;
free(p);
NODE*p;
{push_l(ch_x);
p=(NODE*)malloc(sizeof(NODE));
p=top;
while(p!
=NULL)
p->
data);
p=p->
if(pop_l(&
3.
#defineMAXN
26
charq[MAXN];
inthead=-1,tail=-1;
inten_queue(charx)
{if(tail==MAXN-1)
q[++tail]=x;
return(0);
intde_queue(char*p_y)
{if(head==tail)
*p_y=q[++head];
inputthecharyouwanttoenqueue\n"
if(en_queue(ch_x)==1)
inputacharforch_xtoenqueue\nch_x="
i=1;
while(q[i]!
q[i]);
if(de_queue(&
Thedequeuecharis%c\n"
for(i=head+1;
i<
=tail;
i++)
4
"
structnode*link;
NODE*head,*tail;
voiden_queue_l(charx)
p=(NODE*)malloc(sizeof(NODE));
link=NULL;
if(head==NULL)
head=p;
else
tail->
link=p;
tail=p;
intde_queue_l(char*p_y)
*p_y=head->
p=head;
head=head->
{en_queue_l(ch_x);
p=head;
if(de_queue_l(&
5#include<
string.h>
inthead=0,tail=0;
inten_c_q(charx)
{tail=(tail+1)%MAXN;
if(tail==head)
{if(tail==0)
tail=MAXN-1;
elsetail--;
q[tail]=x;
intde_c_q(char*p_y)
return
(1);
head=(head+1)%MAXN;
*p_y=q[head];
if(en_c_q(ch_x)==1)
if(de_c_q(&
截图
五、试验中遇到的问题、分析与讨论。
在实验中了解到,在函数调用时,第一个进栈的是主函数中后的下一条指令(函数调用语句的下一条可执行语句)的地址,然后是函数的各个参数,在大多数的C编译器中,参数是由右往左入栈的,然后是函数中的局部变量。
注意静态变量是不入栈的。
成绩: