软件技术基础上机实验三_精品文档Word文件下载.docx

上传人:b****1 文档编号:13152583 上传时间:2022-10-06 格式:DOCX 页数:10 大小:116.07KB
下载 相关 举报
软件技术基础上机实验三_精品文档Word文件下载.docx_第1页
第1页 / 共10页
软件技术基础上机实验三_精品文档Word文件下载.docx_第2页
第2页 / 共10页
软件技术基础上机实验三_精品文档Word文件下载.docx_第3页
第3页 / 共10页
软件技术基础上机实验三_精品文档Word文件下载.docx_第4页
第4页 / 共10页
软件技术基础上机实验三_精品文档Word文件下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

软件技术基础上机实验三_精品文档Word文件下载.docx

《软件技术基础上机实验三_精品文档Word文件下载.docx》由会员分享,可在线阅读,更多相关《软件技术基础上机实验三_精品文档Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。

软件技术基础上机实验三_精品文档Word文件下载.docx

Now,thoserecordsare:

\n"

);

p=head;

if(head!

=NULL)

{

do{

printf("

%4d"

p->

data);

p=p->

next;

}

while(p!

=NULL);

}

intpush(lstack_type*lp,intx)

{node_type*p;

p=(node_type*)malloc(LEN);

if(p!

{ p->

data=x;

p->

next=lp->

top;

lp->

top=p;

lp->

length++;

return

(1);

}

elsereturn(0);

}

intpop(lstack_type*lp)

{

node_type*p;

intx;

if(lp->

top==NULL){

printf("

stackisunderflow"

return(0);

}

else{

x=lp->

top->

data;

p=lp->

top=lp->

length--;

free(p);

return(true);

}

}

voidmain()

lstack_type*p1;

inta=0,b=0,m=0;

p1=create_list();

\ninputthenumbers:

scanf("

%d"

&

m);

while(m!

=0)

{push(p1,m);

scanf("

}

print(p1->

top);

pop(p1);

pop(p1);

print(p1->

三:

典型测试数据(输入):

246943

应输出(上机前自己分析的结果):

439642出栈后642

四:

上机时遇到的问题:

①不能输出解决办法:

更改函数返回类型

②编译出错解决办法:

输入数据时“&

”不要忘

五:

实际运行结果

六、小结&

体会

链栈的使用很方便,比顺序栈更好操作。

题目二:

一、程序流程说明

(1)创建一个循环队列

(2)编写出队列函数,入队列函数,和负数删除函数

(3)编写主函数

#include<

#defineN20

typedefstruct

{intdata[N];

intfront,rear;

}queue_type;

voidcreate_list(queue_type*lp)

inti,elem;

lp->

front=0;

lp->

rear=0;

\npleaseinputdatasofthelist\n"

lp->

data[0]=NULL;

for(i=1;

i<

N;

i++)

scanf("

%d"

&

elem);

if(elem==-1)break;

lp->

data[i]=elem;

rear++;

voidprintlist(queue_type*lp)

inti,j=0;

\nTheserecordsare:

if(lp->

rear<

printf("

Nodata!

return;

else

for(i=lp->

front+1;

=lp->

rear;

printf("

%4d"

lp->

data[i]);

voidenqueue(queue_type*q,intx)

q->

rear=(q->

rear+1)%N;

data[q->

rear]=x;

}

intdequeue(queue_type*q)

inti;

i=q->

front;

q->

front=(q->

front+1)%N;

/*printlist(q);

*/

return(q->

data[i+1]);

voidaa(queue_type*lp){

inti,l=lp->

rear,j;

printf("

long=%4d"

lp->

rear);

for(i=lp->

data[lp->

front+1];

i<

=l+1;

i++){

j=dequeue(lp);

if(j>

0)

enqueue(lp,j);

}

main()

queue_typep;

create_list(&

p);

printlist(&

aa(&

printf("

afterdeletetelistis:

printlist(&

三、测试数据*

输入:

23-46-58-97-1020(-1)

应输出:

2368720

①负数不能完全删除解决办法:

更改循环,使每一个数都能与0比较,是负数则删除(调用出队列函数)

五、实际运行结果:

循环队列的使用能是空间更加合理的被利用。

题目三:

(1)编写两个pop函数,两个pus函数

(2)编写主函数

#defineM10

#definetrue1

#definefalse0

typedefstruct{

intdata[M];

inttop1,top2;

}stack_type;

intpush1(stack_type*s)

intx;

请输入数据(以’0‘结束):

scanf("

x);

while(x!

=0&

&

s->

top1<

=s->

top2)

{

s->

data[s->

top1]=x;

s->

top1=s->

top1+1;

scanf("

if(s->

top1==s->

printf("

栈已满!

return;

intpush2(stack_type*s)

top2]=x;

top2=s->

top2-1;

intpop1(stack_type*s)

intout;

if(s->

top1<

0)return(false);

else

out=s->

top1-1];

s->

top1-1;

return(out);

intpop2(stack_type*s)

top2>

=M)return(false);

top2+1];

top2+1;

inti,j,k;

stack_typeas,*lp;

lp=&

as;

lp->

top1=0;

top2=M-1;

while

(1)

请选择你要操作的栈:

输入“1”或“2”\n"

返回“0”\n"

scanf("

i);

if(i==1)

{

printf("

请选择你要进行的操作:

入栈“1”;

出栈“2”\n"

scanf("

k);

switch(k)

{

case1:

push1(lp);

break;

case2:

j=pop1(lp);

printf("

出栈元素为:

%d\n"

j);

default:

printf("

输入错误!

}

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

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1