其实这数据结构不是新的内容,里边的栈和队列我们在stl中也都了解过了,但是我们是根据函数库直接调用,而这次讲的数据结构,是具体的代码实现。
例如:
一:栈
一般的栈操作我们在stl中直接用push入栈,pop出站
而这次老师讲的多用具体的代码
#define n 100
入栈操作
void push(int s[],int *top,int *x) //入栈
{
if (*topn) printf(“overflow”);
else { (*top)++; s[*top]=*x; }
}
出栈操作
void pop(int s[],int *y,int *top) //出栈
{
if (*top0) printf(“underflow”);
else { *y=s[*top]; (*top)–; }
}
二、队列
①循环队列: 将数组存储区看成是一个首尾相接的环形区域。当存放到n地址后,下一个地址就"翻转"为1。在结构上采用这种技巧来存储的队列称为循环队列
②循环队列的入队方法:
1、tail=tail+1;
2、若tail=n+1,则tail=1; 3、若head=tail尾指针与头指针重合了,表示元素已装满队列, 则作上溢出错处理; 4、否则,Q[tail]=x,结束(x为新入出元素)。