码迷,mamicode.com
首页 > 其他好文 > 详细

栈与队列试题中的操作代码

时间:2017-10-28 18:49:58      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:real   return   入栈   type   ace   sizeof   code   数据结构   typedef   

参考资料:《算法与数据结构考研试题精析》《2018数据结构考研复习指导》,如果有误还请提出来~~~>W<

已知链队列的头尾指针分别是f和r,则将值x入队的操作序列是:

1 new(s);s->data=x;s->next=r->next;
2 r->next=s;r=s;

 

将数字e压入栈s,实现入栈操作

 1 typedef struct{
 2     int *base;int *top;
 3     int stacksize;
 4 }SqStack;
 5 int Push(SqStack s,int e){
 6     if(s.top-s.base>=s.stacksize-1){
 7         s.base=(int*)realloc(s.base,(s.stacksize+1)*sizeof(int));
 8         if(!s.base){cout}
 9         s.top=s.base+s.stacksize-1
10         s.stacksize=s.stacksize+1
11     }
12     *(++s.top)=e;
13 }

 

数组s作为两个堆栈的共享空间,请说明共享方法

 1 入栈
 2 if(top2-top1==1){cout}
 3 case 1:top1++,space[top1]=x;
 4 case 2:top2--.space[top2]=x;
 5 
 6 出栈
 7 case 1:if(top1==-1){cout}
 8     top1--;return space[top1+1]
 9 case 2:if(top2==N){cout}
10     top2++ return space[top2-1]
11 
12 栈满
13 top2-top1==1
14 栈空
15 top1==-1&&top2==N

 

循环队列的数据结构

1 typedef struct node{
2     elemtype elemcq[m];
3     int front,rear;
4 }cqnode;
5 cqnode cq;
6 cq.front=cq.rear=0;//初始
7 cq.front=cq.rear;//
8 (cq.rear+1)%m==cq.front;//

 

循环队列不设rear,改计数器count记录结点个数

 1 typedef struct node{
 2     elemtype q[m];
 3     int front,count;
 4 }cqnode;
 5 int empty(cqnode cq){
 6     if(cqnode.count==0){
 7         return 1;
 8     }
 9     return 0;
10 }
11 int Enquene(cqnode cq,elemtype x){
12     if(cqnode.count==m){cout}
13     cq.q[(cq.front+count)%m]=x;
14     count++;return 1;
15 }
16 int Del(cqnode cq){
17     if(count==0){cout}
18     x=cq.q[cq.front];
19     cq.front=(cq.front+1)%m;
20     return x;
21 }

 

栈与队列试题中的操作代码

标签:real   return   入栈   type   ace   sizeof   code   数据结构   typedef   

原文地址:http://www.cnblogs.com/yinghualuowu/p/7747468.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!