栈
栈的存储结构:
顺序栈
typedef struct SqStack
{
int data[maxSize];
int top;
}SqStack;
链式栈
typedef struct LNode
{
int data;
struct LNode *next;
}LNode;
::栈的本质是线性表::,和线性表的定义方式完全一样!
顺序栈
四要素:两状态+两操作
几个状态
- 空栈:st.top == -1//top 代表栈顶元素的index
- 满栈:st.top == maxSize-1
- 非法上下溢
两个基本操作
- 进栈:先移动指针,再进入元素
stack[++top] = x;
- 出栈:先取出元素,后移动指针
x = stack[top--];
::用前先判断,空时不出,满时不进!::
链栈
四要素:两状态+两操作
两个状态
- 空栈:lst->next == NULL
- 满栈:不存在这种情况
两个基本操作
进栈:头插法
::头结点原来是指向的栈顶啊!!!::出栈:出栈元素保存到x中
p = lst->next;
x = p->data;
lst->next = p->next;
free(p);
::考试不用写栈的函数,直接写必要的语句!::</

本文详细介绍了数据结构中的栈和队列。栈是一种后进先出(LIFO)的数据结构,包括顺序栈和链栈,重点讨论了它们的状态和基本操作。同时,文章还探讨了队列的先进先出(FIFO)特性,包括顺序队和链队,并解释了循环队列的概念。最后,提供了相关习题帮助读者巩固理解。
最低0.47元/天 解锁文章
6835

被折叠的 条评论
为什么被折叠?



