原创 小白算法積累——單鏈表19#帶頭結點循環單鏈表+循環刪除最小值

題目:設有一個帶頭結點的循環單鏈表,其結點值均爲正整數。設計一個算法,反覆找出單鏈表中結點值最小的結點並輸出,然後將該結點刪除,直到單鏈表爲空爲止,再刪除頭結點。 關鍵字:帶頭結點單鏈表 +循環刪除最小值 思路 關注:查找最小值+

原创 小白算法積累——單鏈表8#兩個單鏈表的公共節點

題目:給定兩個單鏈表,編寫算法找出兩個鏈表的公共結點 關鍵字:兩個鏈表+查找公共節點 思路 兩個單鏈表有公共節點,意味着:兩個鏈表從某一結點開始,它們的next都指向同一個結點。由於每個單鏈表結點只有一個next域,因此從第一個公

原创 小白算法積累——單鏈表3#帶頭結點單鏈表+逆置輸出

題目:設L爲***帶頭結點***的單鏈表,編寫算法實現從尾到頭反向輸出每個結點的值。 關鍵字:帶頭結點單鏈表,逆置輸出 思路1: 逆置:(立刻想到)頭插法的應用 宏觀思想:將原來單鏈表中的每個元素一個個依次摘下並利用頭插法重新裝配

原创 小白算法積累——單鏈表4#帶頭結點+最小值刪除

題目:試編寫在帶頭結點的單鏈表L中刪除一個最小值結點的高效算法(假設最小值結點是唯一的) 關鍵字:帶頭結點的單鏈表+最小值刪除 思路 刪除最小值=1、找到最小值,然後得到最小值指針 2、進行刪除操作 1.遍歷L,尋找最小值,並隨時

原创 小白算法積累——單鏈表1#不帶頭結點+按值刪除+遞歸工作棧

題目:設計一個遞歸算法,刪除不帶頭結點的單鏈表L中所有值爲x的結點。 關鍵字:遞歸算法+不帶頭結點的單鏈表+按值刪除+遞歸工作棧 思路 關注:遞歸算法的設計重點在於找到“遞歸”的部分,即重複調用函數,改變部分相關變量 設f(L,x

原创 小白算法積累——單鏈表18#2個循環單鏈表+合併

題目:有兩個循環單鏈表,鏈表頭指針分別爲h1和h2,編寫一個函數將鏈表h2鏈接到h1之後,要求鏈接後的鏈表仍保持循環鏈表形式。 關鍵字:合併兩個循環鏈表 思路 關注:重點是找到兩個鏈表的尾結點,用尾指針將h1的尾指針指向h2的頭結

原创 小白算法積累——棧2#共享棧+棧頂相向+迎面增長

題目:設有兩個棧s1,s2都採用順序棧方式,並共享一個存儲區[0,…,maxsize-1],爲了儘量利用空間,減少溢出的可能,可採用棧頂相向、迎面增長的存儲方式。試設計s1,s2,有關入棧和出棧的操作算法。 關鍵字:共享棧+棧頂相

原创 小白算法積累——圖的遍歷3#DFS&BFS,鄰接表,判斷指定路徑的存在

題目:分別用基於深度優先遍歷和廣度優先遍歷算法判別以鄰接表方式存儲的有向圖中是否存在由頂點vi到頂點vj的路徑(i!=j) 注意,算法中涉及的圖的基本操作必須在此存儲結構中實現。 關鍵字: DFS&BFS,鄰接表,判斷指定路徑的存

原创 小白算法積累——單鏈表24#單鏈表+判斷循環

題目:設計一個算法完成以下功能:判斷一個鏈表是否有環,如果有,找出環的入口點並返回。否則返回NULL 關鍵字:單鏈表+判斷循環 思路 關注: 有環的充要條件:兩個指針不停遍歷,一定會相遇 算法的基本設計思想: 1.設置快慢兩個指針

原创 小白算法積累——單鏈表21#帶頭結點單鏈表+倒數查找

題目:已知一個帶有表頭結點的單鏈表,結點結構爲data|link,假設該鏈表只給出了頭指針list。在不改變鏈表的前提下,請設計一個儘可能高效的算法,查找鏈表中倒數第k個位置上的結點(k爲正整數)。 若查找成功,算法輸出該結點的d

原创 小白算法積累——單鏈表26#中心對稱判斷

題目:設單鏈表的表頭指針爲L,結點結構由data和next兩個域構成,其中data域爲字符型。試設計算法判斷該鏈表的全部n個字符是否中心對稱。例如xyx,xyyx,都是中心對稱。 關鍵字:單鏈表+中心對稱判斷 思路 : 使用棧來判

原创 小白算法積累——隊列和棧2#快速逆置

題目:Q是一個隊列,S是一個空棧,實現將隊列中的元素逆置的算法。 關鍵字:逆置 思路 : 將隊列中的元素輸出,然後輸入棧,輸入完畢之後,再從棧中輸出,得到逆置的結果。 原理: 棧是先進後出,所以輸入元素可以實行“逆置輸出” 需要變

原创 小白基本操作分析——“合併”

小白基本操作各類情況的彙總分析——“合併” 1.鏈表的合併 Q: 已知兩個長度分別爲m和n的升序鏈表,若將它們合併爲長度爲m+n的一個降序鏈表,則最好最壞情況下的時間複雜度是? A: 首先,合併前爲升序鏈表,合併後爲降序鏈表。這一

原创 小白算法積累——順序查找1#“概率重心”前移

題目:線性表中各結點的檢索概率不等時,可用如下策略提高順序檢索的效率:概率重心前移(學霸往前坐) 即:若找到指定的結點,則將該結點和其前驅結點(若存在)交換,使得經常被檢索的結點儘量位於表的前端。 試設計在順序結構和鏈式結構的線性

原创 小白算法積累——折半查找1#折半查找+遞歸算法

題目:寫出折半查找的遞歸算法。初始調用時,low爲1,high爲ST.Length 關鍵字: 折半查找,遞歸算法 思路: 根據查找的起始位置和終止位置,將查找序列一分爲二,判斷所查找的關鍵字在哪一部分,然後用新的序列的起始位置和終