一、尾插法建表1
演算法思路:每次在鍊錶的尾部增加新的結點. 設資料元素的型別為int,利用insertlinklist(linklist head, int x, int i)來實現,依次增大插入位置,使新的結點鏈入到鍊錶中。
演算法實現:
linklist creatlinklist1( )時間複雜度為o(n2)return head; }
二、尾插法建表2
演算法思路:每次在鍊錶的尾部增加新的結點.用乙個指標指向表尾,為新的結點鏈入指明了位置。
演算法實現:
linklist creatlinklist2( )該演算法的時間複雜度為o(n)。q->next=null; return head; //q指向尾指標,置尾結點標誌
}
三、頭插法建表
演算法思路:每次在鍊錶的頭部增加新的結點.
演算法實現:
linklist creatlinklist3( )該演算法的時間複雜度為o(n),但其形成的鍊錶資料順序與資料輸入順序相反。return head;
}
四、刪除重複結點
演算法思路:用指標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...