5.8学习日志 有关数据结构的一点点知识
程序员文章站
2022-04-11 10:30:14
...
关于数据结构目前学习的不是深入学习的,只是稍微了解了一下一些基本的概念。
栈
栈是只能在某一端插入和删除的特殊线性表。 进行删除和插入的一端称栈顶,另一堆称栈底。插入一般称为进栈(PUSH),删除则称为退栈(POP)。 栈也称为后进先出表(LIFO表)。 一个栈可以用定长为N的数组S来表示,用一个栈指针TOP指向栈顶。若TOP=0,表示栈空,TOP=N时栈满。进栈时TOP加1。退栈时TOP减1。当TOP<0时为下溢。栈指针在运算中永远指向栈顶。
进栈算法和出栈算法的有关代码实现
#define n 100
void push(int s[],int *top,int *x) //入栈
{
if (*top==n) printf("overflow");
else { (*top)++; s[*top]=*x; }
}
void pop(int s[],int *y,int *top) //出栈
{
if (*top==0) printf("underflow");
else { *y=s[*top]; (*top)--; }
}
队列
队列是限定在一端进行插入,另一端进行删除特殊线性表。 队列的删除和插入分别称为出队和入队。允许出队的一端称为队头,允许入队的一端称为队尾。 由于总是先入队的元素先出队(先排队的人先买完东西),这种表也称为先进先出(FIFO)表。 队列可以用数组Q[m+1]来存储,数组的上界m即是队列所容许的最大容量。在队列的运算中需设两个指针: head:队头指针,指向实际队头元素的前一个位置 tail:队尾指针,指向实际队尾元素所在的位置
上一篇: 秦国与楚国的战争,真正的赢家究竟是谁?
下一篇: 有关接口的实现类与接口的一点分析
推荐阅读