数据结构算法代码实现——栈和队列(一)
2015-06-11 18:14
351 查看
栈和队列
栈和队列是一种特殊的线性表。 从数据结构角度看:栈和队列也是线性表,其特点性在于栈和队列的基本操作是线性表操作的子集。它们是操作受限的线性表。 从数据类型角度看:它们是和线性表不相同的两类重要的抽象数据类型。
栈的定义
栈(Stack)是限定仅在表尾进行插入或删除操作的线性表。允许经行插入删除操作的表尾被称为栈顶,相应的表头被称为栈底。 向栈中插入一个元素称为入栈(压栈),从栈中删除一个元素称为出栈(退栈)。栈中无数据元素时称为空栈。 栈的特点:先进后出,后进先出(LIFO)。
栈的表示与实现
和线性表类似,栈也有两种存储表示方法即:顺序和链式。1,栈的链式存储:因为栈也是线性表,所以线性表的不带头结点单链表结构可以作为栈的链式结构。这样,就可以利用单链表的操作了。
如:
单链表初始化的表头可以作为栈的表头;
单链表 ListInsert(S, 1, e)可以作为栈的入栈操作Push;
单链表ListDeleteS,1, *e)可以作为栈的出栈操作Pop;
单链表的头插法,可以创建一个栈。
2,栈的顺序存储:有关详细信息请看教材46页
//-----栈的顺序存储表示------ typedef struct { SElemType *base; SElemType *top; int stacksize; }SqStack;
栈的基本操作
测试代码:
测试结果图:
相关文章推荐
- 数据结构与算法——直接插入排序
- 数据结构:树与二叉树_二叉树_二叉树的基本操作
- 数据结构:树与二叉树_二叉树_定义
- 数据结构:线性表的链式存储结构_单链表
- To_review_100_0---堆的整理
- 数据结构系列之折半查找树
- 数据结构学习笔记之Linklist
- 数据结构基础(1)--数组C语言实现--动态内存分配
- 数据结构和算法-007 队列
- 大话数据结构—散列表查找(哈希表)
- 数据结构表达式求值
- SDUT 2137 数据结构实验之求二叉树后序遍历和层次遍历
- BZOJ 4085:[Sdoi2015]quality(round 2 音质检测)(数据结构)
- MySQL索引背后的数据结构及算法原理
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- leetcode--Binary Tree Inorder Traversal
- Codeforces Round #306 (Div. 2) D.E. 解题报告
- Json数据结构
- XML、JSON数据结构解析
- 大话数据结构—多路查找树(B树)