一樓和二樓滴筒子,棧是後進先出(先進後出)的線性表,即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.訪問根結點。 在數據結構學中規定,限定在執行“遍歷左子樹”和“遍歷右子樹”時先左後右,所以,三種情況實質上是因爲“訪問根結點”的次序不同。因此,三種方法又稱作:先根序遍歷、中根序遍歷、後根序遍歷。
棧的概念是什麼?遍歷二叉樹有幾種方法?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.