package com.wjy.data_structure.linearlist.common;
public inte***ce node
package com.wjy.data_structure.linearlist.common;
//單鏈表結點定義
public class slnode implements node
public slnode(object ele, slnode next)
public slnode getnext()
public void setnext(slnode next)
/******** methods of node inte***ce **********/
@override
public object getdata()
@override
public void setdata(object obj)
}
package com.wjy.data_structure.linearlist.listslinkimpl;
import com.wjy.data_structure.linearlist.common.defaultstrategy;
import com.wjy.data_structure.linearlist.common.list;
import com.wjy.data_structure.linearlist.common.slnode;
import com.wjy.data_structure.linearlist.common.strategy;
import com.wjy.data_structure.linearlist.exception.outofboundaryexception;
//線性表的單鏈表實現
public class listslinked implements list
public listslinked(strategy strategy)
/*** 輔助方法: 獲取資料元素 e 所在結點的前驅結點
** @param e
* @return
*/private slnode getprenode(object e)
/*** 輔助方法: 獲取序號為 0<=i0; i--)
p = p.getnext();
return p;
}/**
* 輔助方法: 獲取序號為 0<=i0; i--)
p = p.getnext();
return p;
}@override
public int getsize()
@override
public boolean isempty()
@override
public boolean contains(object e)
@override
public int indexof(object e) else
return -1;
}@override
public void insert(int i, object e) throws outofboundaryexception
@override
public boolean insertbefore(object obj, object e)
return false;
}@override
public boolean insertafter(object obj, object e) else
return false;
}@override
public object remove(int i) throws outofboundaryexception
@override
public boolean remove(object e)
return false;
}@override
public object replace(int i, object e) throws outofboundaryexception
@override
public object get(int i) throws outofboundaryexception
}
簡單的測試用例package com.wjy.data_structure.linearlist.listslinkimpl;
import org.junit.test;
import com.wjy.data_structure.linearlist.listslinkimpl.listslinked;
public class listslinkedtest
system.out.println("刪除:" + list.remove(0));
system.out.println(list.contains(1));
list.insertbefore(2, 100);
list.insertafter(2, 101);
list.replace(list.getsize() - 1, 1000);
for (int i = 0; i < list.getsize(); i++)
}}
資料結構學習**倉庫: 資料結構2 線性表
什麼是線性表 邏輯上具有線性結構的儲存結構 線性表的特點 線性表中每個元素型別相同 線性表分類 根據物理結構,分為順序儲存和鏈式儲存 順序儲存 順序表 順序表的特點 快速隨機訪問,查詢和修改效率高,增刪效率低 順序表的實現 1 定義順序表頭,2 順序表初始化,3 實現順序表的操作 順序表的操作 增加...
資料結構(2) 線性表
線性結構的特點 在資料元素的非空有限集中。線性表 n個資料元素的有限序列。當資料元素由若干個資料項 item 組成時,稱記錄,含有大量記錄的線性表稱檔案。c語言實現線性表 include include define nullelem 0 typedef int elem 定義結構型別 typede...
大話資料結構 線性表 2
線性表的順序儲存結構最大的缺點是插入和刪除時需要移動大量資料,這顯然就需要消耗時間。本節討論的鏈式儲存結構可以很好滴解決這個問題。線性表的鏈式儲存結構的特點是用一組任意的儲存單元儲存線性表的資料元素,這些儲存單元可以使連續的,也可以是不連續的。這就意味著,這些資料元素可以存在記憶體未被占用的任意位置...