2016 - 2024

感恩一路有你

n个结点的二叉树有几种形态 设输入序列为2,3,4,5,6,利用一个栈能得到序列2,5,3,4,6吗?栈可以用单链表实现吗?

浏览量:1582 时间:2021-03-14 05:36:00 作者:admin

设输入序列为2,3,4,5,6,利用一个栈能得到序列2,5,3,4,6吗?栈可以用单链表实现吗?

首先,先2个堆栈,然后2个堆栈。使5堆栈第二,3,4堆栈,5堆栈,或3,4,5堆栈(使用后进先出),6堆栈。但此时,6已经是堆栈第二,这是矛盾的(书中有例子),所以我们无法得到25346堆栈序列。

堆栈可以通过单链表实现。可以参考栈的链式存储结构部分及其基本操作的实现。很明显,站点和队列是抽象的结构,而单链表是一个具体的实现。通过链表可以实现堆栈和队列的操作。

通常,堆栈或队列用结构封装,然后定义一些操作(推送、弹出等)。这里,对链表进行具体的操作。例如

struct stack{

struct listuuuhead*head

}

struct queue{

struct listuuuhead*head

struct listuuuhead*end]}]~]/*创建链表数据结构*/typedef struct s{int dstruct s*next}stack/*定义栈顶指针*/stack*top=null/*输入stack*/void push(int i){stack*PS=(stack*)malloc(sizeof(stack))PS->D=IPS->next=top=PS}/*退出stack*/void pop(){if(!Top)returnstack*temp=toppop=Top->nextfree(temp)}/*main函数*/int main(){//堆栈操作代码}

n个结点的二叉树有几种形态 栈可以用单链表实现吗 用链表实现栈

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。