數(shù)據(jù)結(jié)構(gòu)順序表鏈表的操作_第1頁
數(shù)據(jù)結(jié)構(gòu)順序表鏈表的操作_第2頁
數(shù)據(jù)結(jié)構(gòu)順序表鏈表的操作_第3頁
數(shù)據(jù)結(jié)構(gòu)順序表鏈表的操作_第4頁
數(shù)據(jù)結(jié)構(gòu)順序表鏈表的操作_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

《數(shù)據(jù)結(jié)構(gòu)》順序表、鏈表的操作<復雜度>判斷一個算法的效率時,函數(shù)中的常數(shù)和其他次要項常??梢院雎裕鼞撽P(guān)注最高項目、的階數(shù)。推導大O階方法:1、用常數(shù)1取代運行時間中的所有加法常數(shù)2、在修改后的運行次數(shù)函數(shù)中,只保留最高階項3、如果最高階項存在且不是1,則去除系數(shù)O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)口訣:常對冪指階<線性表>由零個或多個數(shù)據(jù)元素組成的有限序列1、首先它是一個序列,有前后關(guān)系2、若元素存在多個,第一個元素無前驅(qū),最后一個元素無后繼,其他元素有且只有一個前驅(qū)和后繼抽象的數(shù)據(jù)類型就是把數(shù)據(jù)類型和相關(guān)操作捆綁在一起OperationInitList(*L)初始化建立一個空的線性表LListEmpty(L)判斷是否為空表,是返回true,否返回falseClearList(*L)清空線性表GetElem(L,i,*e)將線性表L中更多第i個位置元素值返回給eLocateElem(L,e)在線性表L當中查找與給定值e相等的元素ListInsert(*L,i,e)在L的第i個位置插入新元素eListDelete(*L,i,*e)刪除L中第i個位置元素,并用e返回其值ListLength(L)返回L的元素個數(shù)<順序存儲結(jié)構(gòu)封裝需要三個屬性>1、存儲空間的起始位置,數(shù)組data,它的存儲位置就是線性表存儲空間的存儲位置2、線性表的最大存儲容量:數(shù)組長度MaxSize線性表的當前長度:length<順序表的實現(xiàn)-靜態(tài)分配><關(guān)于typedef>1、相當于給自定義的數(shù)據(jù)結(jié)構(gòu)取個昵稱…<關(guān)于插入>1、首先進行判斷i的范圍,注意i>L.length+1這一句實際上是在檢測是否插入的數(shù)據(jù)能使順序表是連續(xù)的(比如原表在1-5位有數(shù)據(jù)了,但是在插入時要求在第7位插入,這是不合理的)2、難點在于位次序是從1開始的,而數(shù)組的存儲是從0開始的<其他>1、感覺沒啥好總結(jié)的,雖然這個代碼寫了好一會,但是感覺最大的困難就是上面的圖片了2、感覺這一次寫的代碼起以往來說交互性更好了3、源碼指路github(全部貼上來真的太長啦……)/Sherlock-White/Learning-note/tree/DataStructure<malloc和new的區(qū)別>1、new從自由存儲區(qū)分配內(nèi)存,而malloc從堆分配內(nèi)存。自由存儲區(qū)能否是堆,取決于operatornew的實現(xiàn)細節(jié)。2、new分配內(nèi)存成功時,返回的是一個與對象類型嚴格匹配的指針,符合類型安全性;而malloc分配成功返回void*,需要進行強制類型轉(zhuǎn)換。3、new分配內(nèi)存失敗時,會拋出bac_alloc異常;而malloc會返回NULL那么對new失敗應該使用try-catch的異常機制4、new無需指定內(nèi)存塊的大小,編譯器會完成的;malloc需要指出(利用sizeof)5、new會調(diào)用對象的構(gòu)造函數(shù)/析構(gòu)函數(shù),而malloc不會6、new的實現(xiàn)可以基于malloc,反之不可以7、new允許被重載,malloc不行new不能擴容,而malloc可以用realloc原地擴大/ywliao/articles/8116622.html<malloc>1、進行malloc的時候要進行強制類型轉(zhuǎn)化,并且要顯式說明分配的內(nèi)存大小2、建議用memset或者是別的方法對臟數(shù)據(jù)進行處理3、下面的博客界面真香啊,javascript馬上學qaqq/ybqjymy/p/12365716.html<單鏈表>1、一個技巧是可以將結(jié)構(gòu)體命名為兩個形式,一個是LNode,另一個是*LinkList,在書寫的過程中,前者更強調(diào)是一個指針,后者更強調(diào)是一個單鏈表,可以增強代碼的可讀性2、千萬別在里面放string,char真的很香3、帶頭結(jié)點的單鏈表思路是在main當中聲明一個listPoint*類型的指針L作為頭結(jié)點,然后對其初始化,接著調(diào)用insert函數(shù)將元素插入4、遍歷的核心就是用一個臨時的指針p去指向頭結(jié)點L,用p=p->next實現(xiàn)遍歷,難點是邊界條件的判定5、在釋放內(nèi)存的時候,同樣是用一個p去遍歷,因為我們要釋放的只有malloc的內(nèi)存,所以從頭結(jié)點走到NULL的時候應該可以把內(nèi)存放干凈<其他>1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論