線性表的儲存

2021-07-06 04:24:54 字數 1955 閱讀 4402

常見三種:

1.線性表的順序儲存:可以用陣列實現,優點指定id,獲取資料(get)與修改資料(set)比較容易,時間複雜度為常數,但是對於插入與刪除就比較麻煩,時間複雜度最少為o(1),最多為o(n),平均時間複雜度為o(n).

2.線性表單向鏈式儲存:核心就是每個節點包含下乙個節點的id,呼叫next獲取下乙個節點,這樣的好處是,修改的時候只需要更改下乙個節點的id就行了,缺點就是獲取指定id的節點時需要遍歷一遍,最壞的情況下時間複雜度為o(n),最好為常數,最終平均時間複雜度為o(n)。

節點node如下:

public class node 

public void setdata(int data)

public node getnextnode()

public void setnextnode(node nextnode)

}

下面簡單的實現單向線性鍊錶:

public class mylinklist 

public int getlength()

public void addnode(node node)

mnextnode.setnextnode(node);

mnextnode = node;

length++;

} public void addnode(int position,node node)

else

length++; }

public node getnode(int position)

public class mylinklist 

public int getlength()

public void addnode(node node)

node.setprenode(mnextnode);

mnextnode.setnextnode(node);

mnextnode = node;

length++;

} public void addnode(int position,node node)

else

length++; }

public node getnode(int position)

system.out.println("length:"+linklist.getlength());

system.out.println("first node:"+linklist.getfirstnode().getdata());

system.out.println("last node:"+linklist.getlastnode().getdata());

node n=linklist.getlastnode();

system.out.println("pre node:"+n.getprenode().getdata());

system.out.println("pre node:"+n.getprenode().getprenode().getdata());

system.out.println("pre node:"+n.getprenode().getprenode().getprenode().getdata());

}

列印如下:

p-4node():3

p-3node():2

p-2node():1

p-1node():0

p-0node():4

length:5

first node:4

last node:3

pre node:2

pre node:1

pre node:0

線性表 線性儲存

1 include 2 using namespace std 3 定義線性表結構體 4 define size 100 5 typedef struct sqlist list 10 初始化11 void initlist sqlist l 18 設定表長 19 l.length 0 20 設定表...

線性表 線性表的順序儲存結構

線性表的順序儲存結構 線性結構是乙個資料元素的有序 次序 集。集合中必存在唯一的乙個 第一元素 集合中必存在唯一的乙個 最後元素 除最後元素外,均有唯一的後繼 除第一元素外,均有唯一的前驅。adt list 資料關係 r1 adt list 容易混的概念 引用符號 和引用型操作沒有關係 加工型操作 ...

線性表 線性表的順序儲存結構

include include using namespace std define ok 1 define error 0 define list init size 100 define listincrement 10 typedef int status typedef int elemty...