栈类型的实现
顺序栈
链栈
顺序栈
类似于线性表的顺序映像,指向表尾的指针可以作为栈顶指针
#define STACK_INIT_SIZE 100;
#define STACKINCREMENT 10;
typedof struct{
SElemType *base;
SElemTYpe *top;
int stacksize;
}
链栈使用链表来存储栈
队列的类型定义
ADT Queue{
数据对象:
D={a1|ai=elementSet,i=1,2,,,,,,n,n>=0}
数据关系
R1={<ai-1,ai>|ai-1,ai=D,i=2,,,,,n}
约定an端为列尾,a1端为列首
}
基本操作:
GetHead(Q,&e)
初始条件:Q为非空队列
操作结果:用e返回Q的对头元素
DeQueue(&Q,&e)
初始条件:Q为非空队列
操作结果:删除Q的队头元素,并用e返回其值。
EnQueue(&Q,e)
初始条件:队列Q已经存在
操作结果:插入元素e为Q的新的队尾元素。
队列类型的实现
<!--[if !supportLists]-->1, <!--[endif]-->链队列---链式映像
基本操作:
GetHead(Q,&e)
初始条件:Q为非空队列
操作结果:用e返回Q的对头元素
DeQueue(&Q,&e)
初始条件:Q为非空队列
操作结果:删除Q的队头元素,并用e返回其值。
EnQueue(&Q,e)
初始条件:队列Q已经存在
操作结果:插入元素e为Q的新的队尾元素。