向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行()。A.h->next=s;
向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行()。
A.h->next=s;
B.s->next=h;
C.s->next=h;h->next=;
D.s->next=h->next;h->next=s;
向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行()。
A.h->next=s;
B.s->next=h;
C.s->next=h;h->next=;
D.s->next=h->next;h->next=s;
A、HS—>next=s;
B、s—>next=HS—>next;HS—>next=s;
C、s—>next=HS;HS=s;
D、s—>next=HS;HS=HS—>next;
向一个栈顶指针为top的链找中插人一个p所指结点时,可执行___________ 操作。(填两条语句,结点的指针域为next)
从栈顶指针为top的链栈中删除一个结点,并将被删结点的值保存到m中,其操作步骤为______。
A.m=top一>data;top=top一>next;
B.top=top一>next;m=top一>data;
C.m=top;top=top一>next;
D.m=top一>data;
A.x=top;top=top->next;
B.x=top;top=top->next;
C.top=top->next;x=top->data;
D.x=top->data;top=top->next;
元素1,3,5,7按顺序依次进枝,按该钱的可能输出序列依次入队列,该队列的可能输出序列是() (进找出梳可以交替进行)
A.7,5,3,1
B.7,3,1,5
C.7,5,1,3
D. 5,1,3,7
参考答案A
6 .对一个栈顶指针为top的链钱进行进技操作,设P为待进拔的结点,则执行()。
A. p=top->next; top=top→ next;
B. p一>next=top;
C. p一>next=top;top=p;
D. top=p;
(1)沿袭5-60题使用逆转链遍历二叉树的思想。
(2)不使用tag标志,而是用内嵌的栈代替tag的作用。该内嵌的栈使用了叶结点作为栈的结构,没有另外定义栈的存储空间。
(3)利用栈解决在回溯时分辨究竟是从左子树还是右子树上升的问题,步骤是:
①当进入有非空左子树的结点的右子树时,将该结点的地址进栈。
②在回溯过程中如遇到结点的左、布子树都非空时,如果该结点就是存于栈顶的结点,则可判定当前是从该结点的右子树退回,该结点的右子女指针指向它的父结点;否则当前是从该结点的左子树退回,该结点的左子女指向它的父结点。
二叉树以二叉链表存储,写出对二叉树进行先序遍历的非递归算法。
解题思路:二叉树的先序遍历非递归算法利用栈结构,从二又树的根结点开始,输出结点信息,同时将结点指针入栈,然后顺着左子树,依次将其左子树各个结点值输出,同时结点指针入栈,直到左子树为空;然后让栈顶指针出栈,接着处理右子树。