第十一周软件工程学习知识总结(《数据结构与算法》)
续上一周
3.双向链结表的队列 (Queue with Double-Linked List)
在 C 程序语言可使用 (非循环, non-circular) 双向链结表 (double-linked list) 实现队列:
双向链结表有两个指针 head (头) 与 tail (尾),head 指向队列的头节点,tail 指向队列的尾节点。
双向链结表的每个节点都有两个指针,prev 与 next,头节点的 next 指针为空值 (NULL);尾节点的 prev 指针为空值 (NULL). 当一个元素入队时,这个元素从队列的尾端加入,成为新的尾节点;
当一个元素出队时,这个元素必是在头节点,从队列的头离开,它的 prev 所指的节点成为新的头节点。
数据结构:



1.头文件



2.c档





3.主程序


4.运行结果





3.栈(Stack)
限定性的线性表,将线性表的插入與删除操作限制在表的一端进行 Last In First Out (LIFO) 或 First In Last Out (FILO)

栈的基本操作:
InitStack(S) : 初始化
initialize ClearStack(S) : 将栈S清空
IsEmpty(S) : 检查栈S是否为空栈
IsFull(S) : 检查栈S是否已满
Push(S, x) : 将元素x压入S的顶部
Pop(S, x) : 取出S顶部的元素x,并于S移除
GetTop(S , x) : 读取S顶部的元素x,不移除



















浙公网安备 33010602011771号