顺序栈的完整代码 数据结构基础之栈的顺序存储表示与实现?

数据结构基础之栈的顺序存储表示与实现?使用top指示顺序堆栈的顶部指针。如果top=-1,则堆栈为空,否则,堆栈的元素数为top。下面是顺序堆栈的结构定义ᦇdefine maxsize 20/*存储空

数据结构基础之栈的顺序存储表示与实现?

使用top指示顺序堆栈的顶部指针。如果top=-1,则堆栈为空,否则,堆栈的元素数为top。下面是顺序堆栈的结构定义ᦇdefine maxsize 20/*存储空间的初始分配*/typedef int selemtype/*selemtype。类型取决于实际情况。这里我们假设它是int type*//*sequential stack structure*/typedef struct{selemtype}Data[maxsize]int top/*用于栈顶指针*/}sqstack/*来构造空栈s*/status initstack(sqstack*s){s->top=-1//将栈顶指针设置为-1,这意味着顺序堆栈是空的。Return OK}

在空间性能比较开始时,顺序堆栈必须有一个固定的长度,因此存在存储元素数量有限和空间浪费的问题。

链堆栈中没有堆栈满问题。只有当内存中没有可用空间时,堆栈才会满。但是,每个元素都需要一个指针字段,从而导致结构开销。

当元素个数变化较大时,最好采用链式堆栈,否则应采用顺序堆栈。