鍊錶是一種物理儲存單元上非連續、非順序的儲存結構。
鍊錶有一系列的結點組成,結點可以在執行是動態生成。
下面是結點的乙個類,有設定和得到結點中資料的方法,設定和得到下乙個結點的方法。
設定結點的資料setobject(object obj)
得到結點的資料getobject()
設定下乙個結點setnext(linknode next)
得到下乙個結點getnext()
public class linknode
public object getobject()
public void setobj(object obj)
public void setnext(linknode next)
public linknode getnext()
}
結點的類設定好了後,還要新增結點,建立鍊錶。
分煉表為空和不為空兩種情況:如果不為空,就將剛剛建立的結點作為根結點,並且該結點是尾結點,否則,將剛剛建立的結點作為尾結點。
linknode root=null;//根結點
linknode end=root;//尾結點
public void add(object obj)else
}
得到鍊錶的大小。
如果鍊錶為空,長度就為0,否則,見以下**:
count++;
linknode node=root.getnext();
while(node!=null)
在範圍之內,找到結點後呼叫getobject()方法,得到資料。
linknode node=root.getnext();
while(node!=null)
插入結點
如果是在根結點前插入結點
node.setnext(root);
root=node;
如果是在尾結點後插入結點
end.setnext(node);
在根結點之後和尾結點前插入結點
node1=root;
for(int i=0;i刪除結點
刪除根結點
node=root.getnext();
root=node;
刪除尾結點
node=root;
for(int i=0;i刪除根結點之後尾結點之前的結點
node=root;
for(int i=0;i查詢索引值為n的結點
linknode node;
object o = null;
node=root;
for(int i=0;i修改結點n的資料為o
linknode node;
if(n==0) root.setobj(o);
else{
node=root;
for(int i=0;i結果如下:
資料結構 表之煉表
頭插法建立 尾插法建立 顯示 銷毀 include include using namespace std typedef int elemtype typedef struct lnode linklist void createlinklistf linklist l,elemtype a,in...
資料結構之鍊錶
頭結點 第乙個有效結點之前的那個結點 頭結點並不存有效資料 加頭結點的目的主要是為了方便對鍊錶的操作 頭指標 指向頭結點的指標變數 尾指標 指向尾節點的指標變數 如果希望通過乙個函式對鍊錶進行處理,只需要乙個引數 頭指標 首先要定義乙個單鏈表儲存結構 然後建立乙個空表,即初始化,我寫的這個提前設定好...
資料結構之鍊錶
鍊錶是一種基本的資料結構型別,它由乙個個結點組成。每乙個結點包括乙個資料的儲存和乙個指向下乙個結點的引用。在這個定義中,結點是乙個可能含有任意型別資料的抽象實體,它所包含的指向結點的應用顯示了它在構造鍊錶之中的作用。和遞迴程式一樣,遞迴資料結構的概念一開始也令人費解,但其實它的簡潔性賦予了它巨大的價...