栈、队列和数组 - suzhouzc/Data-Structure Wiki

  • n个元素这样的序列入栈,则出栈序列数共有

  • 顺序栈的实现

#define MaxSize 10 
typedef struct{ElemType data[MaxSize]; //静态数组存放栈中元素
int top;   //栈顶指针}SqStack;

队列

*顺序队列类型SqQueue

#define MaxSize 10
typedef struct{
 ElemType data [MaxSize];
 int front,rear;
}SqQueue;

*循环队列 逻辑上的环://入队:Q.rear=((Q.rear+1)%MaxSize);可实现循环队列的算法 //出队:Q.front=(Q.front+1)%MaxSize;

判断队列是否满: 1、在入队时少用一个数据元素,用队尾指针加1等于对头指针判断队满(1)队满:(Q。rear+1)%MaxSize==Q.front (2)队空:Q.rear==Q.front

队列中的元素个数:(rear+MaxSize-front)%MaxSize

2、 3、

*链式队列

typedef struct LinkNode{  //链式队列结点
 ElemType data;
 struct LinkNode *next;
}LinkNode;

typedef struct{  //链式队列
 LinkNode *front,*rear;  //队列的队头和队尾指针
}LinkQueue;

应用

栈在中缀转换成后缀的方法:

数组

二维数组的存储的结构:

⚠️ **GitHub.com Fallback** ⚠️