1、資料結構是計算機組織和儲存資料的方式。
2、資料-資料元素-資料項(最小的標識單位)。
3、四種邏輯結構:集合、線性結構、樹形結構、圖結構。
4、資料儲存結構:順序儲存方式、鏈式儲存方式、索引儲存方式、雜湊儲存方式。
5、涉及到的運算:建立、查詢、讀取、插入、刪除等。
6、具有線性結構的有:線性表、棧、佇列。
7、演算法分析:正確性、易讀性、健壯性、時空性。
8、時間複雜度、空間複雜度(a 程式**所占用的空間 b 輸入資料所占用的空間 c 輔助變數所占用空間)。
9、演算法複雜度排序優先順序:o(1)< o(log2^n)< o(n)< o(nlog2^n)< o(n^2)< o(n^3)< o(n^k)< o(2^n)。
1、線性表是由n(n>=0)個資料元素組成的又窮序列,資料元素又稱為結點。
2、一般採用陣列來表示順序表。
3、插入和刪除元素的時候,分別依次向後或者向前移動數個元素,然後表長整體加一或者減一。
4、乙個空單鏈表僅有乙個頭結點,它的指標域為null。
5、單鏈表插入結點的指標變化:p-> next = q-> next; q->next=q;
6、單鏈表上刪除結點時指標變化:p = q->next; q->next = p->next;
7、建立表:第一種方法是每次插入時,都要經歷查詢最後乙個插入點,比較費時間,在元素有n個的時候,計算量平均為:1/2n(n+1),時間複雜度為:o(n^2)。第二種方式為每次插入點後,宣告乙個指標指向尾結點。最後得到的順序和插入順序相同。第三種方式為每次都插入到頭結點之後,最終得到的順序和插入順序相反。但是後兩種的演算法比第一種快,時間複雜度為o(n)。
8、迴圈鍊錶:帶頭結點的迴圈鍊錶,要找的尾結點可以從頭指標head出發掃瞄所有的結點;沒有頭指標的,只有rear尾指標,這樣的首結點表示為:rear->next->next,首位結點都能隨便訪問。
9、雙向迴圈鍊錶的對稱性為:p=p->prior->next=p-next->prior
10、雙迴圈鍊錶中刪除乙個p結點:p->prior->next = p->next; p->next->prior = p->prior;
11、雙迴圈鍊錶中插入乙個p結點:t->prior = p; t->next = p->next; p->next->prior = t; p->next = t;
12、線性表的順序實現和鏈結實現時間空間上的複雜度的比較:
單鏈表順序表
按位置查詢運算
需要對元素進行掃瞄,時間複雜度為o(n)
隨機訪問,時間複雜度為o(1)
定位運算
基本操作是比較時間複雜度為o(n)
基本操作是比較時間複雜度為o(n)
插入、刪除運算
平均時間複雜度為o(n)
平均時間複雜度為o(n)
13、單鏈表的每個節點包括資料域與指標域,指標域需要占用額外空間。
14、順序表需要預分配儲存空間,單鏈表無需預先分配空間。
15、在表長為n的順序表上做插入運算,平均要移動的結點數為n/2。
1、棧和佇列可以看做是特殊的線性表。特殊性表現在基本運算是線性運算的子集,是受限的線性表。
2、函式的巢狀呼叫和程式遞迴都是通過棧來實現的;作業系統中的程序呼叫、網路管理中的列印服務用佇列來實現。
3、棧進出方式為,先進後出。允許進行插入和刪除的一端稱為棧頂,另一端稱為棧底。不含有任何資料元素的棧稱為空棧。處於棧頂位置的資料元素稱為棧頂元素。
4、出棧的時候要判斷棧空。
5、棧的鏈結實現稱為鏈棧。
6、鏈棧的每個結點空間都是動態分配產生的,鏈棧不用預先考慮容量的大小。
7、進棧操作演算法中採用前插操作,新增結點始終插入到頭結點之後。
8、出棧操作始終是棧頂結點出棧,即刪除頭結點之後的結點。
9、佇列是有限個同型別資料元素的線性序列,是一種先進先出的線性表。。
10、排隊的規則是不允許「插隊」,新加入的成員只能排在佇列尾,而且佇列中全體成員只能按入佇列的順序離開佇列(即先進先出)。
11、順序儲存實現的佇列成為順序佇列,由乙個一維陣列及兩個分別指示佇列首和佇列尾的變數組成,這個兩個變數成為佇列首指標和佇列尾指標。
12、出佇列判斷佇列是否為空。
13、對二維陣列a[m][n],如果每個元素佔k個儲存單元,以行為主序為例,a[i][j]位置=起始位址+(n*i+j)*k(每個元素佔k個儲存單元)。
14、對稱矩陣:矩陣元素aij在陣列m中的位置為k,k和(i,j)存在如下對應關係。當i>=j,k = 1/2(i+1)*i + j;當i
15、三角矩陣:
上三角矩陣:前i行的元素個數總共有:i/2(2n-i+1);其中aij與m[k]的位置關係為:當i<=j時:1/2[i(2n-i+1)]+j-i;當i>j時:1/2[n(n+1)];
下三角矩陣和對稱矩陣的aij和m[k]位置關係一致。
16、稀疏矩陣:將稀疏矩陣寫成三元組表示法。
困了啊
資料結構(一)
資料結構是由某一資料元素的集合和該集合中資料元素之間的關係組成的,記為 data structure 資料結構的核心技術是分解與抽象。通過分解可以劃分出資料的層次 再通過抽象就能得到資料的邏輯結構 依據資料元素之間的關係的不同,可以分為線性結構和非線性結構。1.線性結構又稱作線性表。線性表中的每乙個...
資料結構一
define maxsize 20 儲存空間 define init ele 假設list為 int型 typedef strctmylist 返回0和1代表有或者沒有,也可以返回list 對應型別資料的指標 int getele mylist l,int i,ele e int insertele...
資料結構 一
要求 1掌握各類基本資料結構型別和相應的儲存結構 2提高閱讀和編寫演算法的能力 3能針對給定問題,選擇相適應的資料結構,並能設計和分析演算法 1.2基本概念和術語 資料 是對客觀事物符號的表示,在電腦科學中是指所有能輸入到計算機中並被電腦程式處理的符號的總稱。資料元素 是資料的基本單位。乙個資料元素...