演算法與資料結構複習 鍊錶

2021-10-13 22:38:54 字數 731 閱讀 9096

鍊錶定義:

typedef struct listnode
題:如何判斷鍊錶有環?

定義兩個節點,乙個節點一次移動乙個節點,乙個節點一次移動兩個節點,如果兩者相遇則說明有環;

bool judgecircle(listnode *node)

} return false

} return false

}

題:請問如何判斷兩個鍊錶是否相交?

若兩個鍊錶相交,則從第乙個相交節點開始,後面的節點都相交。

bool judgeintersection(listnode *node1, listnode *node2)

else

while(p2->next!=null)

if(p1==p2)

return false

} }

return false

}

題:迴圈鍊錶插入元素?(尾指標指向頭指標)

題:乙個單向鍊錶,給出頭結點,找出倒數第n個結點,要求o(n)的時間複雜度?

listnode* findnnode(int n, listnode *node)

} while(p2->next!=null)

return p1

} return null

}

資料結構與演算法 鍊錶

題目 合併兩個已經排序好的鍊錶 非遞迴和遞迴兩種 方法1 cpp view plain copy print color 000000 合併鍊錶.cpp 定義控制台應用程式的入口點。include stdafx.h include using namespace std struct listnod...

資料結構與演算法 鍊錶

在講述鍊錶之前讓我們對資料結構進行乙個簡單的回顧 我們知道,資料結構指的是描述實際問題中各個資料項節點之間的前後邏輯結構關係,即要麼是線性結構 即某一資料項的前繼節點和後繼節點有且只有乙個 要麼是非線性結構 即某一資料節點的前驅或者後繼節點不止乙個 在確定了實際資料項的資料結構之後,我們要採用某種儲...

資料結構與演算法 鍊錶

反轉鍊錶 def reverse head q none p heap while p temp p.next p.next q q pp temp return p判斷鍊錶環 def meetingnode head if not head return slow head fast head.n...