数据结构4

栈类型的实现

顺序栈

链栈

 

顺序栈

类似于线性表的顺序映像,指向表尾的指针可以作为栈顶指针

#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已经存在

操作结果:插入元素eQ的新的队尾元素。

 

队列类型的实现

<!--[if !supportLists]-->1,  <!--[endif]-->链队列---链式映像

基本操作:

GetHead(Q,&e)

初始条件:Q为非空队列

操作结果:用e返回Q的对头元素

 

DeQueue(&Q,&e)

初始条件:Q为非空队列

操作结果:删除Q的队头元素,并用e返回其值。

 

EnQueue(&Q,e)

初始条件:队列Q已经存在

操作结果:插入元素eQ的新的队尾元素。

猜你喜欢

转载自501565246-qq-com.iteye.com/blog/1989757