不定長順序表:
線性表分為順序表和煉表
順序表:
1.順序儲存,必須占用一片連續儲存單元;
可將順序表簡單理解為陣列,其空間是連續的儲存單元。 elem是指向順序表記憶體位址的指標,listsize是順序表總大小,length為當前存放有效資料個數。若在末尾插入資料8,只能在下標4處插入,不能中間空幾個儲存單元插入資料。
2.不便插入刪除資料(插入刪除位置及後面資料需要均向後或前移動一位),除了尾插尾刪(不用移動);
例如在上圖下標2處插入資料10,需要先將下標2以及後面所有資料均往後移乙個位置,把下標2出空出來,再插入10,時間複雜度為o(n)。
同理若刪除下標2的值,只需將下標2後面的值均往前移一位(下標2的值5直接被覆蓋),時間複雜度o(n)。
單鏈表:
1.鏈結儲存,不必占用一片連續儲存單元;
順序表空間連續,可以通過下標互相尋找資料。而鍊錶每個資料位置不一定連續,以單鏈表為例,它會有兩個空間,資料域和指標域,指標域指向下乙個資料結點的位址,就可以通過這個資料找到下乙個資料。
2.插入刪除資料方便(指標域改變即可),尾刪要找刪除位置前乙個(前驅)
鍊錶的插入和刪除用圖形容更好理解,例如:
刪除資料2:只需將第乙個結點(plist指向為頭結點,後面為第乙個結點),指標域中的100改為300,則直接從資料1指向資料3,忽略即刪除了資料2,如下圖
在資料1和2中間插入資料10,位址為400,步驟如下:
①.建立乙個新節點,資料域放10
②.新結點指標域放100(代表新結點下乙個資料為2),資料1對應節點的指標域放新結點的位址400(代表資料1下乙個資料為10)如下圖:
資料結構 順序表和單鏈表
typedef struct sqlist sqlist,psqlist bool isfull psqlist psq bool isempty psqlist psq void initsqlist psqlist psq 初始化 bool insert psqlist psq,int pos,...
資料結構與演算法一一順序表與單鏈表
一 資料結構是指資料元素的集合及元素間的相互關係和構造方法,結構是指元素之間的關係.在資料結構中,元素之間的相互關係稱為資料的邏輯結構.按照邏輯關係的不同將資料結構分為 線性結構和非線性結構,線性結構包括線性表 棧 佇列 串,非線性結構包括 樹 圖.資料元素及元素之間關係的儲存形式稱為儲存結構,可分...
資料結構 動態順序表,順序表與單鏈表的比較
seplistd.h pragma once include include includetypedef int datatype typedef struct seqlistd seqlistd,pseqlistd size t它是一種 整型 型別,裡面儲存的是乙個整數,就像int,long那樣...