一種多重鍊錶的建立

2021-07-09 09:17:55 字數 505 閱讀 8895

分享乙個作品,簡單介紹一下第一次課程設計中關鍵部分,乙個多重鍊錶的建立,題目是圖書管理系統,用到的資料儲存方式為動態鍊錶儲存,為了實現多種關鍵字查詢的功能,我設計了一種鍊錶的建立方式,如圖。

結構設計思路:這個結構中有乙個儲存書資訊的主鍊錶,增加結點的時候直接在鍊錶結尾插入,為了實現多關鍵字查詢,又避免對主鍊錶的多次完全遍歷,於是將關鍵字的資訊提取出來,新建乙個以新鍊錶,該鍊錶儲存兩個內容,乙個是該關鍵字,作為參照或標誌,另乙個是指標域,指向與關鍵字相同的對應的書,這條鍊錶可按關鍵字進行排序,方便查詢,節省時間。同樣,根據其他關鍵字建立起對應的鍊錶,同樣按順序排好序。指標域指向對應的書,至此鍊錶建立完成。

此方法優點在於查詢可以實現多種關鍵字查詢,不需要完全遍歷鍊錶,節省時間,缺點是空間占用較多,犧牲空間換取時間。

一種全新的鍊錶模式

一般使用如下所示的方式定義節點 typedef struct tnode tnode 在進行節點的初始化的時候,需要將定義頭節點,如下所示 tnode phead 然後開始進行鍊錶的生成,具體的如下所示 程式執行的主要關係是,先給首節點變數賦值,將節點指標指向null,再建立乙個臨時節點p,並為p....

有序鍊錶的合併的一種實現

概述 合併有序鍊錶的一種實現 在leetcode刷題的時候,碰到有序鍊錶的合併問題,第21題是兩個鍊錶的合併,第23提是k個鍊錶的合併,第23題利用第21題的解法,將兩個鍊錶合成乙個,再把合成的鍊錶作為新煉表和下乙個鍊錶合併即可。合併鍊錶有很多方法 a.將所有節點拆開,放到陣列裡進行排序,再放回鍊錶...

鍊錶的應用 廣義表 多重鍊錶

廣義表 1 所謂廣義表就是線性表的推廣,怎麼說呢,以前線性表存的是乙個資料元素,現在呢是線性表的結點可以指向另乙個線性表,這就是廣義表啦 typedef struct gnode glist typedef struct gnode glist next gnode 多重鍊錶1 什麼是多重鍊錶,就是...