資料結構中二叉樹建立結點為什麼用雙重指標?詳細解釋下雙重指標

2021-04-03 11:27:33 字數 835 閱讀 9626

1樓:辣比薩

指標的指標。

因為樹的結點要用指標描述。

如果只用指標,作形參傳給建立結點的函式,這個指標值傳給了函式棧中的記憶體,函式返回後,函式棧銷毀,不能獲得結點。

而用指標的指標,函式內修改了這個雙重指標指向的值(即結點指標),在函式外也能獲得結點。

這swap()函式要用指標而不能用值做引數一樣。只是這裡的值本身就是個指標,所以要用指標的指標。

c語言中建立動態鍊錶要用雙重指標嗎?那個雙重指標有什麼作用?

2樓:匿名使用者

舉個例吧,

假如乙個結構:linknode

初始化:initial(linknode **p);//這裡就是雙指標

那麼在呼叫就這樣,

linknode *p;

initial(&p);

原理就是,如果你要通過函式來改變某個引數的值,那麼就要傳該引數的位址進去。

這裡p是乙個指標,所以要傳指標的位址進去,也就是乙個指向指標的指標;

初始化函式initial(linknode *(*p));(*p)是指標,*(*p)就是傳指標的位址進去了,意思就這樣,不知道你聽不聽得懂。

不管動態還是靜態,只要是要通過函式來改變指標型別資料的值,就要用雙重指標。

3樓:匿名使用者

樓上講得不錯

再幫補充一下細節:

這樣呼叫

linknode *p = null;

initial(&p);

經過 initial(&p) 的作用後,p就不再是 null 了,而是乙個真正可用的鍊錶指標

資料結構二叉樹

先介紹一下樹 1.樹的定義 樹是一種常見的非線性的資料結構。樹的遞迴定義如下 樹是n n 0 個結點的有限集,這個集合滿足以下條件 有且僅有一個結點沒有前件 父親結點 該結點稱為樹的根 除根外,其餘的每個結點都有且僅有一個前件 除根外,每一個結點都通過唯一的路徑連到根上。這條路徑由根開始,而未端就在...

vb中二叉樹問題,vb中二叉樹的度結點深度之間有什麼關係

二叉樹的bai結點一共du 有三種型別 度為2的結zhi點,度dao為1的結點,葉子結點。而三種回結點之間又存在答以下關係 不妨用n0 n1 n2分別代表葉子結點 1度的結點和2度的結點的數量 n2 1 n0 所以,總結點數m n0 n1 n2 在本題中 已經n0 70,n1 80 m 70 80 ...

二叉樹是重要的資料結構,點的不同的二叉樹有幾個

2個點有2種 根有左兒子或者根有右兒子 3個點有5種 左邊2個結點或者右邊2個結點或者左右各一結點,2 2 1 5 4個點有14種 左邊3個結點或者右邊3個結點或者左1右2或者左2右1 5 5 2 2 14 5個點有42種 左4或右4或左3右1或左1右3或左2右2,14 14 5 5 2 2 42 ...