筆試總結 資料結構篇 持續更新

2021-07-10 17:09:02 字數 1391 閱讀 2304

1.單鏈表的沒個節點都具有唯一的前驅節點和唯一的後繼節點,所以當兩個單鏈表存在相交的節點時,這兩個鍊錶則同時擁有這個節點,以及這個節點的所有後繼節點,當這個公共節點是尾節點時,他們則只含有公共乙個節點-------尾節點。

2.快慢指標是判斷單鏈表是否有環的一種方法:兩個指標,每次移動的步長為2叫做快指標,每次移動步長為1的指標叫做慢指標。快慢指標同時從頭結點出發,當快指標率先到達null的時候,則說明此單鏈表中不存在環,當快指標追上慢指標的時候,說明此單鏈表中存在環。

3.有環的單向鍊錶和無環的單向鍊錶不能相交,因為當相交的時候,無環的單向鍊錶也會被迫存在乙個環,只不過這個環的」起點「可能不是原來單向鍊錶的頭結點。

4.兩個單向鍊錶之間相交可以存在環。

view plainactlist* reverselist3(actlist* head)   

p->next=head;//相當於成環

head=p->next->next;//新head變為原head的next

p->next->next=null;//斷掉環

return head;

}

森林轉化為二叉樹的步驟:

(1)把每棵樹轉換為二叉樹。

(2)第一棵二叉樹不動,從第二棵二叉樹開始,依次把後一棵二叉樹的根結點作為前一棵二叉樹的根結點的右孩子,用線連線起來。

在一顆度為4的樹t中,若有20個度為4的結點,10個度為3的結點,1個度為2的結點,10個度為1的結點,則樹t的葉結點個數是_______。

任何一棵樹中,結點個數比分支個數多一

分支個數等於20*4+10*3+1*2+10*1=122

所以這棵樹一共有123個結點

度不為零的結點數目為20+10+1+10=41

所以葉子結點也就是度為零的結點個數為123-41=82

如果存在迴路,則必存在乙個子圖,是乙個環路。環路中所有頂點的度》=2。

演算法:

第二步:將度數變為1的頂點排入佇列,並從該佇列中取出乙個頂點重複步驟一。

如果最後還有未刪除頂點,則存在環,否則沒有環。

有向圖是否有環的判定演算法,主要有深度優先和拓撲排序兩種方法。

棧(頭一次聽說過耶)

理解記憶功能:棧的特點是先進棧的後出棧,後進棧的先出棧,所以你對乙個棧進行出棧操作,出來的元素肯定是你最後存入棧中的元素,所以棧有記憶功能

而佇列是先進先出,你取佇列的第乙個元素,得到的是你最先存入佇列的元素,而不是上乙個存入佇列的元素,所以沒有記憶功能

資料結構複習之開題篇(持續更新)

在複習資料結構之前有必要複習一下c語言的指標 int p 乙個指標型別,名為p,代表的是乙個整形所存放的位址編號 1.1乙個使用的例項 注 對變數使用 操作符,意為取它所在的位址 1 include 2 3int main 41.2乙個容易搞混的東西 int p null 意為對指標p賦值為null...

資料結構複習之開題篇(持續更新)

在複習資料結構之前有必要複習一下c語言的指標 int p 乙個指標型別,名為p,代表的是乙個整形所存放的位址編號 1.1乙個使用的例項 注 對變數使用 操作符,意為取它所在的位址 1 include 2 3int main 41.2乙個容易搞混的東西 int p null 意為對指標p賦值為null...

考研資料結構題目 樹(持續更新)

在度為4的樹中,若有20個度為4的節點,10個度為3的節點,1個度為2的節點,10個度為1的節點,則樹t的葉節點個數是?這道題是2010年計算機聯考真題。我用手算 半蠻力 解出答案是82,結果是對的,但是耗時較長,而且如果數字再大點也不好算了,因此肯定存在一種更加高效的方法。我們知道,於是樹的節點個...