资料结构与演算法.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

資料結構與演算法課程教學投影片

本章各段大綱鏈結串列概觀單一鏈結串列以陣列表示雙向鏈結串列以陣列表示鏈結串列用指標和結構來表示鏈結串列應用在其它結構第九章–鏈結串列

9-1鏈結串列概觀串列的定義:串列(list)的抽象觀念是指一組相同資料型態元素的有序集合。例子如下正奇數串列(1,3,5,7,9,……)。正偶數串列(2,4,6,8,10,……)。費伯那西數串列(1,1,2,3,5,8,……)。正質數串列(2,3,5,7,11,13,……)。大寫英文字母串列(A,B,C,D,……,X,Y,Z)。

因為串列中的元素是有次序的,一般串列中元素的排列次序是由小而大,例如正整數串列的1234有序的串列應用到電腦中的情況則有ASCⅡ碼,如AB……Zab……z串列的應用ASCⅡ碼中A的下1個B,則第10個是什麼?ASCⅡ碼中A的號碼是65,則Z的號碼為多少?解答:(a)K(b)90ex:9-1鏈結串列概觀

9-1鏈結串列概觀鏈結串列在資料處理或資料結構的領域中,對於一些資料(或數字),可以利用類似箭頭的鏈結(link)將資料統合起來,可以一個連到下一個,而形成有次序的資料(或數字),則此結構稱為鏈結串列(linkedlist)。鏈結串列定義:鏈結串列(linklist)是一種有順序的串列,且資料項應包含鏈結(link),可以鏈結到其它資料。此資料項稱為節點節點形式datalink(1)樂透獎號碼的開獎順序(2)由小到大順著鏈結的順序則為32262495119511322624

9-1鏈結串列概觀鏈結串列有以下的特性:鏈結串列一般可以用陣列結構型式來表示。節點順序在記憶體中的實際位址可以不連續,或者是經由隨機配置,不像陣列的元素在記憶體中的實際位址是連續的。依鏈結的型式不同,鏈結串列分為下列幾類:單向鏈結:節點之間按順序,一個鏈結一個。最後沒有鏈結者,其link值為Null或特定值。環狀鏈結:同單向鏈結的型式,但是最後一個節點指向第1個節點。雙向鏈結:節點包含資料和左右兩個鏈結。樹狀鏈結:鏈結的型式如樹狀結構。圖形鏈結:鏈結的型式如圖形結構。

9-1鏈結串列概觀單向鏈結節點之間按順序,一個鏈結一個。最後沒有鏈結者,其link值為Null或特定值。

9-1鏈結串列概觀環狀鏈結同單向鏈結的型式,但是最後一個節點指向第1個節點。

9-1鏈結串列概觀雙向鏈結節點包含資料和左右兩個鏈結。

9-1鏈結串列概觀樹狀鏈結鏈結的型式如樹狀結構。

9-1鏈結串列概觀圖形鏈結鏈結的型式如圖形結構。

鏈結串列的應用:9-1鏈結串列概觀鏈結串列的應用:其特性是因為加入鏈結(link)使得資料可以串起來,使其有次序性,而形成其他結構的應用,以求得更佳的演算法加速排序速度假如用陣列存放數值資料,且依大小排序,刪除、增加、修改資料,且需要重新排序,例如原有資料量n個,則由第6章排序方法得知排序演算法的時間是O(nlogn)或是O(n2),而且都是針對固定的資料來排序。但如果用鏈結串列結構來處理,則資料異動的時間只在有限次數內,時間是O(1),如果加上搜尋到資料再異動時,搜尋的最差時間是O(n),所以總共的異動時間為O(mn),這比O(mn2)或O(mnlogn)有效率堆疊、佇列可以利用鏈結串列來表示其結構。只要資料異動頻繁且要維持其定義的次序性,都適合用鏈結串列。

9-2單一鏈結串列以陣列表示鏈結陣列的宣告方式如下#definemaxsize100;intA[2][maxsize];//第一列存放資料,第二列存放鏈結inthead;另外需要一個獨立的變數來存放一個陣列的起始點-1代表空鏈結datalinkA01230205040103020504010433020504010302050401001241-132-13243原資料以鏈結排序,不需調動順序,可以加快速度鏈結陣列課本有誤以鏈結建立排序

9-2單一鏈結串列以陣列表示鏈結陣列的主要操作:尋找節點目的:找出陣列中比搜尋數值小的最後一個位置 傳回該值所在位置的索引值演算法說明圖範例:Data=35,要找比data小的最後1個位置301130550420-13240601001130550420-132406010012456head=0

9-2單一鏈結串列以陣列表示鏈結陣列的主要操作:尋找節點演算法說明圖301130550420-13240601001130550420-132406010012456範例:Data=35,要找比data小的最後1個位置A[0][0]=10datalink=A[1][0]=2,ans=0(1)link=head=0(2)link=2A[0][2]=20data(2)link=2A[0][2

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档