從無到有演算法養成篇 線性表實戰篇

2021-10-08 17:21:51 字數 672 閱讀 6315

例如:

la , lb

lc

1、遞增有序鍊錶代表:插入適合後插,前插會倒序;

2、表中不允許有重複的資料:合併各表前無重複資料,合併後也無重複資料,需要進行刪除操作;

3、不另外佔⽤其他的儲存空間:無須建立新鍊錶。

1、定義4個指標,pa 和 pb 分別是la,lb的工作指標,初始化分別為對應的首元節點,合併後的新錶使用頭指標lc(lc的表頭結點設為la的表頭結點)指向,temp用來記錄重複節點,以便後面進行釋放;

2、因為合併後的為遞增有序鍊錶,所以需要從首元結點開始比較迴圈比較,迴圈結束條件是兩個鍊錶la 和lb 有乙個到達表尾結點時,即**判斷是否為空;迴圈體內進行比較,比較兩個節點的元素,pc 指向較小的節點,無須釋放,當相等時,我們預設指向 pa,並對 pb 進行釋放,以免造成重複資料;

3、當結束迴圈時,把非空鍊錶剩餘部分鏈結至lc表後面;

4、釋放lb的頭結點。

**塊參考:

void mergelist(linklist *la, linklist *lb, linklist *lc){

linklist pa,pb,pc,temp;

pa = (

從無到有演算法養成篇 棧和佇列 佇列

佇列是啥?資料從表的一端進,從另一端出,且遵循 先進先出 原則的線性儲存結構就是佇列。佇列的兩個基本操作 入隊將乙個資料放到佇列尾部 出隊從佇列的頭部取出乙個元素。佇列的應用 迴圈佇列 阻塞佇列 併發佇列 優先順序佇列等。棧和佇列不要混淆,棧結構是一端封口,特點是 先進後出 而佇列的兩端全是開口,特...

Makefile 從無到有

makefile這玩意在上學時就應該學,可是一直沉浸於ide的 所謂 死於安樂 直到現在一把年紀才開始接觸這種基礎東西。建立c程式 先寫個c程式,儲存在main.c裡 view plain file main.c include int main 看看我這時的目錄結構 view plain code...

Redis從無到有

redis最佳執行環境是linux作業系統,所以要在虛擬機器裡的linux系統裡安裝redis 安裝教程 安裝過程中遇到的問題 1 windosws系統預設是沒開啟虛擬機器功能的,進入bios設定,將相應的disable改為enable 2 license not accept 依次輸入 1,2,c...