單鏈表的若干操作

2021-09-30 13:27:24 字數 1242 閱讀 5912

這學期開始學資料結構,順便記錄下一些心得和感悟,先宣告一下,本人是初學者,所以肯定有很多不懂的,理解不深刻的東西,誠心希望各位多多指教,至於噴嘛,咱就不要了吧。

首先是建立鍊錶的節點:

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 ...