資料結構重點研究「資料」還是「結構」
重點研究結構。資料結構是一門研究非數值計算的程式設計問題中計算機操作物件(即資料元素)以及他們之間的關係和運算的學科。如何合理組織高效處理資料是資料結構主要研究問題。
線性表的儲存結構膠順序表,線性表的鏈式儲存結構叫鍊錶,請簡述你對「順序表順序儲存、隨機讀取;鍊錶隨機儲存、順序讀取」這句話的理解
順序表的儲存位置是一片連續的區域,可以根據下標進行隨機讀取,而鍊錶散布在儲存區域的各個地方,通過指標連線,想要讀取乙個資料,就要從到不斷通過指標向後尋找
資料結構中你熟悉的那些資料型別是遞迴定義的?請給出一種遞迴資料型別的定義,並做簡單的解釋
單鏈表就是一種遞迴的資料結構
typedef
struct lnode
linklist;
棧和佇列與普通線性表有何異同?相同點:資料元素之間存在一對一的關係,儲存方式和線性表相同
不同:棧是限定盡在表尾進行插入或刪除,是後進先出;佇列是限定在一端進行插入,在另一端進行刪除,是先進先出
基於關鍵字比較的排序演算法所能達到的最優時間複雜度是?能否設計一種不需要關鍵字間比較的演算法?請給出基本思路
o(n);基數排序;基於關鍵字大小進行排序,借助分配和收集兩種操作對單邏輯關鍵字進行排序
簡述kmp演算法如何提高字串的模式匹配效率
每當一趟匹配出現字元比較不對等時,不需要回溯指標二利用已經得到的「部分匹配」的結果,將模式想做滑動盡可能遠的一段距離後繼續進行比較
請給出四種資料結構基本型別
集合、線性結構、樹形結構、圖狀結構和網狀結構
簡述棧和佇列的區別
棧只允許表的一端進行插入或刪除操作
佇列只允許在表的一端進行插入,在另一端進行刪除
什麼是關鍵路徑
在aoe網中,有些活動可以並行地執行,最短完成時間應是從源點到匯點的最長路徑(指路徑上所有權值之和),稱這樣的路徑為關鍵路徑
插入類排序有哪幾種?其中哪些是不穩定的排序
插入排序分為直接插入排序、折半插入排序、希爾排序
其中希爾排序是不穩定的排序演算法
資料結構
資料結構式相互之間存在一種或多種特定關係的資料元素的集合
什麼是穩定的排序方法
穩定的排序方法:假設關鍵字ki=kj,且在排序前的序列中,ki領先於kj,若排序後ki仍然領先於kj,則稱該排序方法穩定
穩定的排序:冒泡、直接插入、歸併、基數
不穩定的排序:快速、希爾、堆
不確定的排序:簡單選擇排序(插入版穩定,交換版不穩定)
二叉排序樹
二叉排序樹也稱二叉查詢樹,二叉排序樹是一顆空樹或者是一顆具有以下特性的非空二叉樹:
1、若左子樹非空,則左子樹上所有結點關鍵字值均小於根結點關鍵字值
2、若右子樹非空,則右子樹上所有結點關鍵字值均大於根結點關鍵字值
3、左右子樹本身也是二叉排序樹
簡述以下三個概念的區別:頭指標、頭結點、表頭結點
頭指標:是指向鍊錶第乙個結點的指標
頭結點:是在首元結點之前附設的乙個結點,其指標域指向首元結點
表頭結點:也稱首元結點,是鍊錶中儲存第乙個資料元素的結點
什麼是遞迴程式?遞迴程式的優缺點?遞迴程式在執行時,應借助何種資料結構來完成?
遞迴程式:如果乙個函式過程或資料結構定義中應用了他自身,那麼這個函式過程或資料結構稱為是遞迴定義,簡稱遞迴
優點:把乙個大型複雜問題轉化為乙個規模較小的問題來求解,大大減小了程式的**量,使問題的描述和求解變得簡單清晰,演算法更易設計
簡述迴圈佇列的資料結構,並寫出初始狀態,佇列空、佇列滿時隊首指標域隊尾指標的值
typedef stractsqqueue q;
初始狀態:q.front=q.rear=0
佇列空:q.front=q.rear
佇列滿:q.front=(q.rear+1)%maxsize
有關排序演算法複雜度和穩定性
串、陣列、廣義表從元素間關係上看可以看成線性結構,他們與一般意義上的線性表相比有何特殊性
串是零個至多個字元組成的有限序列。從資料結構角度講,串屬於線性結構,與線性表的特殊性在於串的元素是字元
陣列類似於線性表,是由同種型別的資料元素構造而成,陣列的每個元素由乙個值和一組下標決定,陣列中個元素之間的關係由下標體現出來
廣義表是一種 非線性的資料結構,是線性表的一種推廣,即廣義表中放鬆對元素的原子限制,允許它們具有自身結構
借助棧可以實現更複雜的操作,請簡述如何利用棧實現對表示式中括號是否匹配的檢驗
從左到右掃瞄表示式,發現「(」就入棧發現「)」就出棧,若無「(」則不匹配,掃瞄到最後若棧為空則匹配
圖的廣度優先遍歷與樹的何種遍歷相似?請給出簡單的解釋
圖的廣度優先遍歷和樹的層次遍歷相似,兩者都是從一點出發訪問其他相鄰所有結點,樹是看連線它的左右子樹,圖是看連通點
資料結構中經常使用「樹形化組織」的方式來整理資料,比如折半查詢表、二叉排序樹、大頂堆/小頂堆等,請簡述這樣做的優點
用樹形結構可以使資料的儲存和查詢更加方便,在進行查詢時能極大提高效率,同時可以表示資料之間的關係
什麼是佇列的上溢?有哪些解決方法
在佇列的順序儲存結構中,設隊頭指標為front,隊尾指標為rear,佇列的容量為maxnum,當有元素要加入佇列時,若rear=maxnum,則會發生佇列的上溢,此時就不能講該元素入隊。對於佇列,還有一種假溢位現象,佇列中尚有足夠的空間,但元素不能入隊,一般是由佇列的儲存結構或操作方式的選擇不當導致,可以用迴圈佇列解決。
解決上溢的辦法:建立足夠大的儲存空間
對於線性別的兩種儲存結構,若線性表的總數基本穩定,且很少進行插入和刪除操作,但要求以最快的速度訪問線性表中的元素,應選用何種儲存結構?在單迴圈鍊錶中設定尾指標比設定頭指標好嗎?為什麼
設定尾指標比設定頭指標好,尾指標是指向終端節點的指標,用它來表示單迴圈鍊錶可以使得查詢鍊錶的開始結點和終端節點都和方便
特殊條件的二叉樹
簡述資料結構 超簡述演算法
程式由儲存資料的結構和解決問題的演算法組成,在計算機的世界裡,結構和演算法存在 相輔相成 的關係。程式根據演算法選擇最合適的儲存結構,演算法依賴儲存結構,選擇最優的策略處理資料,達到占用空間少 計算時間少的目的。打個比方,遇到乙個實際問題,需要解決兩個事情 1 如何將資料儲存在計算機中 2 用什麼方...
資料結構 簡述,白話版
一下內容為個人理解,非專業出身,所以描述的不專業,比較偏向大白話。日常當中很多資訊,大家在處理資訊的時候都會不自覺的使用一些資料結構思想。查字典就是一種,按照abcd的順序去初步定位到自己要查的字在哪個範圍,然後在逐一去看,最終找到自己想要的字。還有在網購的時候,都有一些篩選條件,比如你要哪個品牌的...
資料結構題
題目背景 把一張紙對折100次就和珠穆朗瑪峰一樣高了哦 syh 題目描述 注 本系列題不按難度排序哦 第一行乙個n,m 接下來一行n個數表示a i 接下來m行,每行l,r,l1,r1,x,表示求get l,r,x get l1,r1,x 輸出描述 3 m行,先輸出get l,r,x 再輸出get l...