使用一組連續的儲存空間
儲存相同型別的資料
陣列的插入以及刪除操作是低效的
假設陣列的長度為n插入資料的位置為i,則要將i~n的資料全部向後移動,效率偏低,刪除操作同理。
稀疏陣列
當二維陣列中只存放了少量資料的時候,可以考慮採用稀疏陣列來減少空間的使用
記錄二維陣列中的有效資料個數記作n
記錄每個有效資料的座標
建立[n+1] [3]大小的稀疏陣列(第一行記錄原陣列大小以及有效資料,其餘行記錄有效資料座標以及值)
根據稀疏陣列還原二維陣列
使用不連續的記憶體空間動態的儲存資料
單向鍊錶(包含頭節點和不包含頭節點的,視情況而定),本文為包含頭節點
定義乙個單向鍊錶,包含乙個頭節點(無任何實際作用,僅作標識)
增加節點
修改節點
刪除節點
遍歷鍊錶
雙向鍊錶
單向鍊錶
雙向鍊錶
data,next指標
data,next,pre指標
只能從前往後遍歷鍊錶
能夠雙向遍歷鍊錶
不能自我刪除節點
能夠自我刪除節點
前奏:定義乙個節點,包含資料域和指標域(鏈結下乙個節點--next和上乙個節點--pre)
定義乙個雙向鍊錶,包含乙個頭節點(無任何實際作用,僅作標識)
增加節點
修改節點
刪除節點
遍歷鍊錶
josephu(約瑟夫問題)
題目描述:有n個小孩圍成一圈,從第i個小孩開始報數,數到s的小孩出隊,得到出隊的順序
特點:先進先出
使用陣列模擬佇列
特點時先進後出
應用場景
使用鍊錶模擬棧
public class linkedstack}}}//定義鍊錶節點物件
class node{
private int value;
private
資料結構 線性結構
typedef int position typedef struct lnode list struct lnode 初始化 list makeempty 查詢 define error 1 position find list l,elementtype x 插入 bool insert lis...
資料結構 線性結構
線性表基本操作有 1 list makeempty 初始化乙個新的線性表 2 elementtype findkth list l,int i 根據指定的位序i,返回l中相應元素ai i是下標 3 position find list l,elementtype x 已知x,返回線性表l中與x相同的...
線性資料結構
一般將資料結構分為兩在類 線性資料結構和非線性資料結構。線性資料結構有線性表 棧 佇列 串 陣列和檔案 非線性資料結構有樹和圖。線性表 一 arraylist 1 arraylist底層採用陣列實現,當使用不帶引數的構造方法生成arraylist物件時,實際上會在底層生成長度為10的object型別...