基本概念
資料: 能被輸入到計算機中,且能被計算機處理的符號的集合 。
資料元素:資料集合中的乙個個體。
資料項:資料的不可分割的最小單位。
資料型別:在一種程式語言中,變數所具有的資料種類。
邏輯結構:資料之間的相互關係。
儲存結構:資料在計算機中的表示。
演算法五個特性:有窮性、確定性、可行性、輸入、輸出。
演算法設計要求:正確性、可讀性、健壯性、高效率與低儲存量需求。
時間複雜度:演算法的執行時間與原操作執行次數之和成正比。時間複雜度有小到大:o(1)、o(logn)、o(n)、o(nlogn)、o(n2)、o(n3)。冪次時間複雜度有小到大o(2n)、o(n!)、o(n^n)。
空間複雜度:若輸入資料所佔空間只取決於問題本身,和演算法無關,則只需要分析除輸入和程式之外的輔助變數所佔額外空間。
線性表線性表是一種典型的線性結構。頭結點無前驅有乙個後繼,尾節點無後繼有乙個前驅。
插入:插入新結點,之後結點後移。平均時間複雜度:o(n)
刪除:刪除節點,之後結點前移。平均時間複雜度:o(n)
隨機訪問:訪問時可以按下標隨機訪問 。
鏈式表:用一組任意的儲存單元來依次存放線性表的結點,這組儲存單元即可以是連續的,也可以是不連續的,甚至是零散分布在記憶體中的任意位置上的。
每個結點的儲存位址是存放在其前趨結點next域中。
查詢:只能從鍊錶的頭指標出發,順鏈域next逐個結點往下搜尋,直到搜尋到第i個結點為止。鍊錶 不是隨機訪問結構。
插入:先找到表的第i-1個的儲存位置,然後插入。新結點先連後繼,再連前驅。
刪除:首先找到第i-1個的儲存位置p。然後令p–>next指向第i個的直接後繼結點,即把第i個從鏈上摘下。最後釋放結點ai的空間。
棧棧是限制在表的一端進行插入和刪除運算的線性表,進行插入、刪除操作的一端為棧頂,另一端為棧底。
先進後出。
top= -1時為空棧,top=0只能說明棧中只有乙個元素,並且元素進棧時top應該自增 。
順序棧:順序儲存結構。需要考慮棧滿的情況。
鏈棧:鏈式儲存結構。插入和刪除操作僅限制在鏈頭位置上進行。棧頂指標就是鍊錶的頭指標。通常不會出現棧滿的情況。 不需要判斷棧滿但需要判斷棧空。
例子:迷宮求解。
佇列佇列是一種運算受限的線性表。只允許在表的一端進行插入,另一端進行刪除。進行刪除操作的一端稱為隊頭,進行插入操作的一端稱為隊尾。
先進先出。
順序佇列:順序儲存結構。
鏈佇列:鏈式儲存結構。限制僅在表頭刪除和表尾插入的單鏈表。顯然僅有單鏈表的頭指標不便於在表尾做插入操作,為此再增加乙個尾指標,指向鍊錶的最後乙個結點。
隊空條件:rear == front
隊滿條件:(rear+1) % 佇列的最大長度==front
入隊:(rear+1)% 佇列的最大長度
出隊:(front+1)% 佇列的最大長度
串串是零個或多個字元組成的有限序列。
空串:長度為零的串。
空白串:串中包含乙個或多個空格字元。
串中任意連續字元組成的子串行為該串的子串。
串的模式匹配:目標串中找出字串出現的位置。
next值:找到串相同的字首字尾包含字元的數量再+1 。沒有相同的則為零。
資料結構 概念總結
data structures algorithms programs 資料結構是計算機儲存 組織資料的方式。資料結構是指相互之間存在一種或多種特定關係的資料元素的集合 集合結構,線性結構,樹形結構,圖結構。順序儲存結構和鏈式儲存結構.資料結構在計算機專業課程體系中起到承上啟下的作業,熟練使用資料結...
資料結構及概念分析總結
作為計算機專業的人,如果出去跟別人說自己不懂資料結構,那就是天大的笑話了,資料結構 演算法 程式設計,這是計算機屆公認的理論了,無論我們在做專案時,還是參加各種比賽,乃至於我們參加工作招聘,資料結構都是至關重要的,有時你甚至可以不懂計算機語言,但是不能不懂資料結構,通過上次的華為面試,我發現自己在資...
資料結構概念
資料結構概念 資料結構包含資料和結構,通俗一點就是將資料按照一定的結構組合起來,不同的組合方式會有不同的效率,使用不同的場景,如此而已。比如我們最常用的陣列,就是一種資料結構,有獨特的承載資料的方式,按順序排列,其特點就是你可以根據下標快速查詢元素,但是因為在陣列中插入和刪除元素會有其它元素較大幅度...