一.
帶頭節點的單鏈表與不帶頭節點的單鏈表的比較(下面以插入演算法為例)
1.帶頭節點
templatevoid linklist::insert(int i,t x)
if(p == null)
throw "位置非法";
else
}
2. 不帶頭節點
templatevoid linklist::insert(int i,t x)
else
if(p == null)
throw "位置非法";
else
} }
不帶頭節點雖然可以實現演算法,但演算法冗長,而且需要考慮在表頭的特殊情況
二、建立單鏈表
1. 頭插法
template linklist::linklist(t a,int n)
}
2. 尾插法
template linklist::linklist(t a,int n)
r->next = null;
}
三、判斷單鏈表是否遞增演算法
template int increase(node* first)
return 1;
}
四、單鏈表逆置演算法reverse
即修改每個節點的指標域,把指向後繼節點的指標改為指向前驅節點
template int reverse(node* first)
first->next = pre;
}
鍊錶 單鏈表翻轉
看到好多部落格裡面寫鍊錶翻轉時候就是 要麼一樣,要麼沒有注釋。咱最近閒人一枚,準備好好寫寫code給大家分享一下自己的思想.使用前插法 1 2 3 4 null 我把1標記為prev,把2標記temp,把3標記next 使得最後順序輸出 4 3 2 1 null 定義linklist型別的prev ...
鍊錶 單鏈表的建立
建立乙個節點 struct student 注意 當有新的節點要新增到鍊錶中時,原來最後乙個節點的指標將儲存新新增的節點位址,而新的節點的指標將指向空 null 當新增完成後,新節點將成為鍊錶的最後乙個節點。實際上是尾插法建立鍊錶 例 動態建立乙個鍊錶 步驟分析 1 初始化乙個頭節點,即定義乙個頭指...
鍊錶 單鏈表的拆分
資料結構實驗之鍊表五 單鏈表的拆分 time limit 1000 ms memory limit 65536 kib problem description 輸入n個整數順序建立乙個單鏈表,將該單鏈表拆分成兩個子鍊錶,第乙個子鍊錶存放了所有的偶數,第二個子鍊錶存放了所有的奇數。兩個子煉表中資料的相...