線性表鏈式儲存結構的特點是:用一組任意的儲存單元儲存線性表的資料元素。這組是儲存單元可以是連續的,也可以是不連續的。通俗點就是將實體地址上不連續的資料鏈結起來,通過指標來對實體地址進行操作,實現功能。
那麼對於鍊錶中的資料元素來說,除了儲存其本身的資訊之外,還需儲存乙個只是其直接後繼的資訊(就是直接後繼的儲存位置)。這兩部分組成資料元素的儲存映像,稱為節點。節點包括兩個域:儲存資料元素資訊的域成為資料域;儲存直接後繼儲存位置的域稱為指標域,n個節點的鏈成乙個鍊錶,即線性表。
宣告乙個node介面用來規範單鏈表的節點的特性
/**
* 規範單鏈表的節點的特性
* @author shanlei
* */
public inte***ce node
在定義乙個slnode類來表示節點映像
package 單鏈表;
public class slnode implements node
public slnode(slnode next, object obj)
@override
public object getdata()
@override
public void setdata(object obj)
}
package 單鏈表;
import 線性表的順序結構.list;
public class singlelist implements list
//獲得序號為index的元素的前驅節點
public slnode getprenode(int index)
return p; }
//獲得指定元素的前驅節點
public slnode getprenode(object obj)
return null; }
@override
public int size()
@override
public boolean isempty()
@override
public boolean insert(int index, object obj) throws exception
@override
public boolean delete(int index) throws exception
@override
public object getelem(int index)
return p;
} @override
public int searchlist(object obj)
@override
public void destroylist()
@override
public void clearlist()
@override
public object locateelem(object obj)
public static void main(string args) throws exception
system.out.println(((slnode) list.getelem(3)).getdata());
system.out.println(list.delete(3));
system.out.println(list.delete(5));
system.out.println(list.size());
for (int i = 1; i <= 9; i++) }}
線性表中順序表的實現和單鏈表的實現
線性表 線性表儲存結構 基類介面 public inte ce list 簡單實現 順序表 public class arraylist implements list 陣列初始長度 public arraylist int initialcapacity override public intsi...
C C 實現線性表中的迴圈單鏈表
資料結構 typedef struct lnodelnode,clinklist 單鏈表的原子操作實現 1.建立迴圈單鏈表 status listcreate cl clinklist l,lnode tail,int n p next l 表尾指向表頭 tail p return ok 2.刪除迴...
2 2 線性表的單鏈表
ps 1 p l的結點都是指標型別 2 頭結點插入與輸出的順序相反 3 注意左值與右值的區別 p next q next q next是指到的下乙個結點,非指標本身 p next是指標本身 即p的指標域 與左值右值有關 4 後移用p p next 不用 p 因為位址不連續 p next 表示指標變數...