1樓:匿名使用者
1、建立乙個單鏈表,並從螢幕顯示單鏈表元素列表。
2、從鍵盤輸入乙個數,查詢在以上建立的單鏈表中是否存在該數;如果存在,顯示它的位置;如果不存在,給出相應提示。
3、在上述的單鏈表中的指定位置插入指定的元素
4、刪除上述單鏈表中指定位置的元素。
源程式:標頭檔案
#include
#include
typedef char elemtype;
typedef int status;
#define ok 1
#define error 0
typedef struct lnodelnode,*linklist;
void about()
void showmenu()
cout cout<<"逆序輸入 n 個資料元素,建立帶頭結點的單鏈表"< 0; --i) } // l是帶頭結點的連結串列的頭指標,以 e 返回第 i 個元素 // 本演算法在連結串列中第i 個結點之前插入新的元素 e status listinsert_l(linklist l, int i, elemtype e) #include"linklist.h" void main() //3.連結串列插入元素 case 4: //4.連結串列刪除元素 default:cout<<"輸入錯誤,請輸入-5,輸入重顯示功能表^_^ "<>choice; } } 2樓:曉凡 二叉樹的鏈式儲存是指:兩個兒子結點分別用指標指向。而儲存結構值的是: 假設該結點在陣列中的位置為 i ,則它的左兒子的位置為 2i ,右兒子為 2i + 1. ( i 從1開始) 所以你只要建立乙個陣列,從鏈式儲存的根節點開始,用中序遍歷遍歷樹,按中序遍歷的順序儲存在陣列中。即可完成順序儲存結構的轉化。 相關的遍歷你可以檢視相關資料,中序遍歷即訪問順序為左兒子-根-右兒子的順序訪問。 希望對你有所幫助。 為什麼說二叉樹是非線性儲存結構?不是說二叉樹可以順序儲存和鏈式儲存嗎?感覺順序儲存是線性的呀?怎麼 3樓:遊赤壁 線性是線性,順序是順序,線性是邏輯結構,順序是儲存結構,兩者不是乙個概念。線性是指乙個節點只有乙個子節點,而樹,或二叉樹乙個節點後有多個子節點,且子節點不能相互聯絡。 4樓:匿名使用者 線性是陣列那樣,鏈就是有節點,, 二叉樹順序儲存 5樓:匿名使用者 順序儲存的話,就是儲存在陣列中,陣列 的下標就是二叉樹的結點位置(層次結構),專比如結點屬a,在陣列中就是位置0,b就是1,c就是2....,以此類推,所以第i個結點的在陣列中的位置就是i(i從0開始),i的兩個孩子結點在陣列中的位置是2i+1和2i+2 順序儲存可能會浪費空間 在非完全二叉樹的時候 但是讀取某個指定的節點的時候效率比較高o 0 鏈式儲存相對二叉樹比較大的時候浪費空間較少,但是讀取某個指定節點的時候效率偏低o nlogn 二叉樹的順序儲存,尋找後代節點和祖先節點都非常方便,但對於普通的二叉樹,順序儲存浪費大量的儲存空間,同樣也不利於節... 前序 根,左兒子,右兒子 中序 左兒子,根,右兒子 後序 左兒子,右兒子,根 首先是要牢記一上幾句話 比如這棵樹的中許遍歷,a有左兒子,先不訪問a,以此類推,直到d沒有左兒子,訪問d,然後訪問d的根b,然後應該訪問b的右兒子,但是b沒有,所以訪問b的根a,訪問完a以後訪問a的右子樹。先看c,c有左兒... 左孩子,右兄弟 凡是右子樹都斷開,就是森林了 資料結構上應該有方法呀,有了方法就是把方法用乙個程式語言描述下了,是吧?寫什麼程式啊,這純粹就乙個理論問題。如按左子 右兄弟的方法,二叉樹和森林的計算機內部表示根本就是一樣的,不用轉換,就看你怎麼用了。將二叉樹轉化為樹 森林 二叉樹轉bai換為森林 前提...二叉樹兩種儲存結構的優缺點,雜湊表和二叉樹的優缺點對比,如何在這兩種資料結構中選擇
資料結構二叉樹的遍歷,C語言資料結構 二叉樹的遍歷
如何將二叉樹轉變為森林,將二叉樹轉化為樹森林?