資料結構導論 2 3 其他運算在單鏈表上的實現

2021-08-28 23:42:44 字數 933 閱讀 3000

一、尾插法建表1

演算法思路:每次在鍊錶的尾部增加新的結點. 設資料元素的型別為int,利用insertlinklist(linklist head, int x, int i)來實現,依次增大插入位置,使新的結點鏈入到鍊錶中。

演算法實現:

linklist creatlinklist1( )

return head; }

時間複雜度為o(n2)

二、尾插法建表2

演算法思路:每次在鍊錶的尾部增加新的結點.用乙個指標指向表尾,為新的結點鏈入指明了位置。

演算法實現:

linklist creatlinklist2( )

q->next=null; return head; //q指向尾指標,置尾結點標誌

}

該演算法的時間複雜度為o(n)。

三、頭插法建表

演算法思路:每次在鍊錶的頭部增加新的結點.

演算法實現:

linklist creatlinklist3( )

return head;

}

該演算法的時間複雜度為o(n),但其形成的鍊錶資料順序與資料輸入順序相反。

四、刪除重複結點

演算法思路:用指標q指向第乙個資料元素結點,從它的後繼結點開始到表的結束,查詢與其值相同的結點並刪除之;q指向下乙個結點;依此類推,q指向最後結點時演算法結束。

void purgelinklist(linklist head)

else p=p->next;

q=q->next; } //q指向下乙個,繼續

}

資料結構與演算法 單 鏈佇列

首先建立單鏈表,和佇列結構,在佇列結構中定義兩個指標變數front rear,分別用來指向佇列的首部和為尾部。判斷佇列是否為空,是否已滿。define maxsize 5 佇列的最大容量 typedef int datatype 佇列中元素型別 typedef struct qnode qnode ...

23種設計模式 二十一 資料結構之職責鏈

23種設計模式 二 元件協作之模板方法 23種設計模式 三 元件協作之策略模式 23種設計模式 四 元件協作之觀察者模式 23種設計模式 五 單一職責之裝飾模式 23種設計模式 六 單一職責之橋模式 23種設計模式 七 物件建立之工廠方法 23種設計模式 八 物件建立之抽象工廠 23種設計模式 九 ...

資料結構導論 2 2 線性表的鏈式儲存之單鏈表

線性表的鏈式儲存之單鏈表 單鏈表的型別定義 typedef struct node node,linklist 單鏈表舉例 學生檔案資訊表的鏈結儲存實現 學生檔案資訊鍊錶的型別完整描述如下 typedef struct datatype 定義結點型別 typedef struct node node...