1、前言
資料結構,是計算機程式設計中對資料儲存最基本的操作,不同的資料結構適用不同的業務場景。如今大部分情況都是呼叫開發api封裝好的類庫,直接呼叫,幾乎不需要程式設計師再去深究其中背後實現的邏輯,大大簡化和減低了對程式設計師的要求。正是這種,知其然而不知其所以然,導致很多程式設計師缺乏對於底層結構的了解,分不清楚不同資料結構之間的效能差異,導致出現很多系統效能問題。
2、原理推導
鍊錶的運用,鍊錶是一種特殊的線性表,由一系列的節點組成,節點在鍊錶中的順序由節點元素中包含的物件鏈結順序確定位置。鍊錶中的節點一部分是自身的資料,另一部分為節點指向的下乙個節點的引用。
示例中,第乙個節點包含指向下乙個節點的指標,自身的資料+指標,這樣構成了乙個單向鍊錶中的節點。單向鍊錶在表頭插入和刪除操作效率很高,對於鍊錶來說就是修改指標的引用,時間複雜度為常量o(1)。查詢功能時間複雜度為o(n),比陣列要快,鍊錶操作不需要移動和複製資料。
3、**示例
# 鍊錶資料封裝
/**
* 鍊錶的資料封裝
*/public
class
linknodeflat
public
void
setid
(int id)
public linknodeflat getnodeflat()
public
void
setnodeflat
(linknodeflat nodeflat)
public
linknodeflat
(int id)
public
void
printlink()
system.out.
println
(str);}
}
# 利用單向鍊錶完成節點增刪改查
/**
* 鍊錶的基本實現
*/public
class
singlelinklist
/** * 移除鍊錶中第乙個節點
* @return
*/public linknodeflat removefirst()
/** * 查詢指定節點
* @param id
* @return
*/public linknodeflat find
(int id)
else
}return node;
}/**
* 移除指定的節點
* @param id
* @return
*/public linknodeflat remove
(int id)
else
}// 如果移除的節點就是第乙個節點,則第一節點後的節點成為新的第一節點
if(currentnode.
equals
(firstnode)
)else
return currentnode;
}/**
* 列印鍊錶節點資料
*/public
void
printnodelist()
}public
static
void
main
(string[
] args)
}
4、禪定時刻
單向鍊錶在表頭插入和刪除操作效率很高,對於鍊錶來說就是修改指標的引用,時間複雜度為常量o(1)。查詢功能時間複雜度為o(n),比陣列要快,鍊錶操作不需要移動和複製資料。
作者簡介
思維的持續,乙個真的有思想,不穿格仔襯衫的程式設計師。
資料結構系列之鍊錶
鍊錶是一種線性的資料結構型別,由一系列的節點組成。每個節點由儲存資料的資料域跟指向下乙個節點的指標域構成。鍊錶又有分單向鍊錶,雙向鍊錶,迴圈鍊錶等。單向鍊錶 單向鍊錶的結構示意圖就跟上圖結構一樣,只能單向遍歷,最開始的稱之為頭節點,最後乙個稱之為尾節點。遍歷或者查詢順序只能是從頭節點向尾節點方向依次...
經典資料結構系列之 佇列的應用
1 前言 資料結構,是計算機程式設計中對資料儲存最基本的操作,不同的資料結構適用不同的業務場景。如今大部分情況都是呼叫開發api封裝好的類庫,直接呼叫,幾乎不需要程式設計師再去深究其中背後實現的邏輯,大大簡化和減低了對程式設計師的要求。正是這種,知其然而不知其所以然,導致很多程式設計師缺乏對於底層結...
資料結構 鍊錶應用
鍊錶應用 pragma warning disable 4996 include includetypedef struct data typedef struct nodechainlisttype void chainlistall chainlisttype head 顯示所有節點 chain...