今天看了一些資料結構的知識,也是做一點簡,單的梳理。
資料結構中常見的資料結構包括線性結構、樹型結構、圖結構等。
先說一下線性結構。
線性結構常見的是線性表,線性表是零個或多個資料元素組成的有限序列。
線性表包括陣列、鍊錶、棧、佇列。
陣列是邏輯結構上連續、儲存結構上也連續的線性表,生成時需要分配好長度。
陣列訪問時直接找到索引i,時間複雜度是o(1),而插入或刪除元素時,第i個元素之後的元素都要改變下標值,時間複雜度是o(n)
鍊錶是邏輯上連續,儲存結構上分散的線性表。查詢時,需從第乙個節點開始向後找到第i個元素,時間複雜度是o(n),但插入和刪除元素時,只需改變指標的值,時間複雜度是o(1)。
陣列適合訪問,鍊錶適合插入刪除操作。陣列空間利用率沒有鍊錶高,但鍊錶多了一塊指標域,也占用了記憶體。
棧是一種特殊的線性表,只對尾節點進行插入刪除操作。最後乙個節點也稱為棧頂,第乙個節點稱為棧底。插入操作叫入棧,刪除則是出棧。是後進先出的線性表。
佇列是只對頭尾節點進行操作的線性表。在最後乙個節點插入節點稱為入列,刪除第乙個節點稱為出列。是先進先出。
資料結構 線性結構
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型別...