一楼和二楼滴筒子,栈是后进先出(先进后出)的线性表,即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.访问根结点。 在数据结构学中规定,限定在执行“遍历左子树”和“遍历右子树”时先左后右,所以,三种情况实质上是因为“访问根结点”的次序不同。因此,三种方法又称作:先根序遍历、中根序遍历、后根序遍历。
栈的概念是什么?遍历二叉树有几种方法?
最新推荐文章于 2024-05-29 16:57:33 发布