#include
#include
#define ERROR 0
#define OK 1
#define STACK_INT_SIZE 10 /*存储空间初始分配量*/
#define STACKINCREMENT 5 /*存储空间分配增量*/
typedef int ElemType; /*定义元素的类型*/
typedef struct{
ElemType *...
分类:
其他好文 时间:
2014-11-04 15:07:56
阅读次数:
142
之前对顺序栈写了基本操作,觉得有必要也动手练练栈的链表实现。
对于链栈,一般不会出现栈满的情况。
链栈头文件定义如下:
#ifndef CSTOCK_H_
#define CSTOCK_H_
typedef int elemType;
struct Item
{
elemType data;
Item * p_next;
};
class CStock
{
public:
CSto...
分类:
编程语言 时间:
2014-10-07 17:53:23
阅读次数:
310
栈的基本操作包括入栈push和出栈pop,栈有一个栈顶指针top,指向最新如栈的元素,入栈和出栈操作操作都是从栈顶端进行的。
队列的基本操作包括入队enqueue和出队dequeue,队列有队头head和队尾tail指针。元素总是从队头出,从队尾入。采用数组实现队列时候,为了合理利用空间,可以采用循环实现队列空间的有效利用。
关于栈和队列的基本操作如下图所示:
采用数组简单实现一下栈...
分类:
其他好文 时间:
2014-09-22 01:16:21
阅读次数:
499
#include #include #include #include #define TRUE 1#define FALSE 0#define ERROR 0#define INFEASIBLE -1typedef int Status;typedef int Boolean;typedef in...
分类:
其他好文 时间:
2014-08-30 01:15:28
阅读次数:
232
二、队列 队列是一种先进先出的数据结构,元素只能添加到队尾,而对元素的删除,修改,检索只能在队头进行。与栈的差异是很明显的。同样队列的实现可以基于链表,也可以基于数组。和栈的基本操作差不多,但队列多了一个指针(标号)指向末尾的元素,因为需要在末尾插入元素。1.队列的链表实现#ifndef QUEU....
分类:
其他好文 时间:
2014-08-12 00:09:43
阅读次数:
231
栈是限定尽在表尾进行插入或者删除操作的线性表,分为顺序栈和链式栈。 顺序栈: 利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设top指示栈顶元素在顺序栈中的位置,top永远指向栈顶元素的下一个元素位置,下面我们来看一下 顺序栈的基本操作和其应用: #include ...
分类:
其他好文 时间:
2014-08-07 22:53:35
阅读次数:
325
前面做了栈的基本操作总感觉需要做一个实际的例子来检验一下。这里我将用栈来做一个简单的四则运算。目标比较简单:做一个带小括号(“()”)的四则运算,如果要加入到中括号(“[]”)或者大括号(“{}”),依次类推。求一个表达式:用下面这个算是做例子,程序最后应该可以算出任何带小括号的运算。3+(32-6...
分类:
其他好文 时间:
2014-08-05 21:52:30
阅读次数:
224
#include
#include
#define LENGTH 100 //初始分配栈的长度
#define ADD_LEN 10 //栈长增量
typedef struct
{//构造栈的数据类型
int *base;
int *top;
int stacksize;
}SqStack;
void CreateStack(SqStack &S);//初始化一个栈
void PushS...
分类:
其他好文 时间:
2014-08-01 13:49:41
阅读次数:
187
1.栈的简介
栈是一种后入先出的数据结构,一般包含两种最基本的操作:入栈(push)和出栈(pop)。
入栈操作:top指针上移,元素入栈。
出栈操作:top指针下移。
栈空的条件:top == bottom
栈满的条件:top == maxsize-1
2.有数据序列1 2 3一次存入一个栈stack中,则出栈顺序可以为以下四种:
1,2,3; 2,1,3; 3,2,1; 1,3,...
分类:
其他好文 时间:
2014-07-29 14:27:19
阅读次数:
237