這學期開始學資料結構,順便記錄下一些心得和感悟,先宣告一下,本人是初學者,所以肯定有很多不懂的,理解不深刻的東西,誠心希望各位多多指教,至於噴嘛,咱就不要了吧。
首先是建立鍊錶的節點:
struct node;
node * list;
接下來是鍊錶的建立
void init()
else index->next=p;
index=p;
}}
獲取鍊錶中任意節點
node * getelem(node * l,int pos)
if(!p || j>pos) return null;//判斷是否讀到錯誤的節點
return p;
}
任意位置插入乙個節點
void myinsert(int pos,int x)
刪除任意位置的乙個節點
void mydelete(int pos)
輸出鍊錶的所有資料
void display(node *l)
cout
進行氣泡排序
void myswap(node * l,node * p,node *q,int pos)
void mysort(node * l)
p=l;
for(int i=1;i<=k;i++)
else }}
}
心得:在進行排序的時候特別要注意排序時候指標的指向,最好畫出圖來,這樣就比較清楚
單鏈表的若干問題
1 試編寫演算法將帶頭結點單鏈表就地逆置,所謂 就地 是指輔助空間為o 1 解析 此問題有兩種解法。a 把頭節點摘下來,然後用頭插法建鍊錶就形成所謂的就地逆置 b 依次遍歷將指標反轉,不過最後乙個節點需要注意一下 兩演算法時間複雜度都是o n 空間都是o 1 演算法 第一種演算法 就地反轉 int ...
單鏈表的若干問題
1 試編寫演算法將帶頭結點單鏈表就地逆置,所謂 就地 是指輔助空間為o 1 解析 此問題有兩種解法。a 把頭節點摘下來,然後用頭插法建鍊錶就形成所謂的就地逆置 b 依次遍歷將指標反轉,不過最後乙個節點需要注意一下 兩演算法時間複雜度都是o n 空間都是o 1 演算法 第一種演算法 cpp view ...
單鏈表的若干問題
1 試編寫演算法將帶頭結點單鏈表就地逆置,所謂 就地 是指輔助空間為o 1 解析 此問題有兩種解法。a 把頭節點摘下來,然後用頭插法建鍊錶就形成所謂的就地逆置 b 依次遍歷將指標反轉,不過最後乙個節點需要注意一下 兩演算法時間複雜度都是o n 空間都是o 1 演算法 第一種演算法 就地反轉 int ...