二级C栈,二叉树,前序中序后序的概念及例题(二级考试中实用的)

如题所述

一楼和二楼滴筒子,栈是后进先出(先进后出)的线性表,即LIFO结构,队列才是先进先出的线性表,即FIFO结构。
三楼滴筒子,栈是限制仅在“表尾”进行插入或删除操作的。

栈:
1)栈stack是限定仅在表尾进行插入或删除操作的线性表。对栈来说,表尾有特殊的含义,称为栈顶top,表头端称为栈底bottom。不含元素的空表称为空栈。
2)栈的修改按后进先出的原则进行,总是插入或删除“栈顶元素”。
3)栈的基本操作除了在栈顶进行插入或删除外,还有栈的初始化、判空及取栈顶元素等。
如,另附:
栈的初始化操作:按设定的初始分配量进行第一次存储分配,base可称为栈底指针,在顺序栈中,它始终指向栈底的位置。若base的值为NULL,则表示栈结构不存在。top为栈顶指针,当其初值指向栈底,即top=base时可作为栈空的标记。每当插入新的栈顶元素时,指针top增1;删除栈顶元素时,指针top减1,因此,非空栈中的栈顶指针始终在栈顶元素的“下一个位置”上。

遍历二叉树:
先告诉LZ一个概念,二叉树由根结点、左子树、右子树三个基本单元组成,因此,若能依次遍历这三个部分,便是遍历了整个二叉树。所以,遍历方案要定下执行“遍历左子树”“访问根结点”“遍历右子树”这三个部分的次序。总结所有的方案后,分为以下三种情况:

先序遍历二叉树~~
若二叉树为空,则空操作,否则
1.访问根结点;
2.先序遍历左子树;
3.先序遍历右子树。

中序遍历二叉树~~
若二叉树为空,则空操作,否则
1.中序遍历左子树;
2.访问根结点;
3.中序遍历右子树。

后序遍历二叉树~~
若二叉树为空,则空操作,否则
1.后序遍历左子树;
2.后序遍历右子树;
3.访问根结点。

在数据结构学中规定,限定在执行“遍历左子树”和“遍历右子树”时先左后右,所以,三种情况实质上是因为“访问根结点”的次序不同。因此,三种方法又称作:先根序遍历、中根序遍历、后根序遍历。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-15
首先二叉树有上、左、右三个结点。
前序:上、左、右
中序:左、上、右
后序:左、右、上
遍历时,从最顶端的三个结点开始。
我自己打的,为的是让你更好地明白。
相似回答