栈和队列也是重要的数据结构.从数据结构角度来说,栈和队列也是线性表.但是栈和队列的基本操作是
线性表的操作子集.可以称之为限定性的数据结构.但是在数据类型上它们和线性表大不相同.
我想还是先学学栈和队列的基本操作吧.
栈:
栈的结构: 栈顶 栈底
对于n个元素,第一个入栈的称之为栈底,最后一个入栈的称之为栈顶.
栈的进出原则是后进先出或者是先进后出. 即 LIFO 或者 FILO.
栈的声明:
typedef struct { SElemtype *base; //栈构造之前和销毁之后,base 的值均为 NULL SElemtype *top; //栈顶指针 int stacksize; //栈的容量 }SqStack;
队列:
队列和栈有些类似,但是队列是 先进先出的,而且队列是在一端进行插入(队尾),在另一端进行删除(队首).
队列的声明:
typedef struct QNode { QElemtype data; //队列数据类型 struct QNode *next; }QNode,*QueuePtr; typedef struct { QueuePtr front; //队头指针 QueuePtr rear; //队尾指针 }LinkQueue;
这些知识栈和队列的皮毛,算法的实现还要研究一下.