单向链结串列的类别.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单向链结串列的类别

第3章 鏈結串列(Linked Lists) 3-1 Java的抽象類別與介面 3-2 鏈結串列的基礎 3-3 單向鏈結串列 3-4 環狀鏈結串列 3-5 雙向鏈結串列 3-6 鏈結串列的應用 - 多項式表示法 3-1 Java的抽象類別與介面 3-1-1 Java的抽象類別 3-1-2 Java的介面 3-1 Java的抽象類別與介面 「抽象類別」(Abstract Class)是一種不能完全代表物件的類別,換句話說,它並不能建立物件,其主要的目是作為類別繼承的父類別,用來定義一些類別的共同部分,在第3-3節筆者將使用抽象類別定義單向和環狀串列共同部分的抽象類別List。 Java介面(Interface)是在類別繼承架構中定義類別行為,內含常數和介面方法宣告,在本章的串列和第4、5章的堆疊和佇列都將使用介面來定義資料結構類別的行為。 3-1-1 Java的抽象類別-說明 Java類別宣告成abstract表示是抽象類別,抽象類別並不能用來建立物件,只能繼承抽象類別宣告子類別。 在抽象類別同時可以使用abstract宣告方法為抽象方法,表示方法只有原型宣告,實作的程式碼是在子類別建立,而且繼承的子類別一定要實作這些抽象方法。 3-1-1 Java的抽象類別-抽象類別 抽象類別是子類別的原型宣告,抽象方法宣告子類別使用介面的方法,如果類別擁有抽象方法,表示類別一定是一個抽象類別。例如:抽象類別Shape,如下所示: abstract class Shape { public double x; public double y; abstract void area(); } 3-1-1 Java的抽象類別-繼承抽象類別 宣告Circle類別繼承Shape類別,如下所示: class Circle extends Shape { public double r; public Circle(double x, double y, double r) { … } public void area() { System.out.println(圓面積: + 3.1416*r*r); } } 3-2 鏈結串列的基礎-說明 「有序串列」(Ordered List)或稱為「線性串列」(Linear List)是一種元素間擁有順序的集合,如下所示: (a0, a1, a2, …, an),ai,0 = i = n 上述集合是一個線性串列,如果是空的線性串列,表示串列中沒有任何元素,是使用( )空括號表示。 3-2 鏈結串列的基礎-範例 一些線性串列的範例,如下所示: 英文的月份:( Jan, Feb, March, …, Oct, Nov, Dec )。 英文的星期:( Mon, Tue, Wed, Thu, Fri, Sat, Sun )。 撲克牌的點數:( A, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K )。 樓層:( B2, B1, 1, 2, 3, 4, 5, 6 )。 生肖:( 鼠, 牛, 虎, …… , 狗, 猪 )。 3-2 鏈結串列的基礎-運算 線性串列的相關運算,如下所示: length():取得線性串列的長度。 getNode():取得線性串列的第i個元素。 searchNode():從左到右,或從右到左走訪線性串列,搜尋指定的元素。 deleteNode():在線性串列第i個元素刪除元素。 insertNode():在線性串列第i個元素插入元素。 3-2 鏈結串列的基礎-Java介面 01: /* 程式範例: ListInterface.java */ 02: // ListInterface介面宣告 03: public interface ListInterface { 04: // 介面方法: 取得串列長度 05: int length(); 06: // 介面方法: 取得線性串列的第i個元素 07: Node getNode(int i); 08: // 介面方法: 搜尋節點資料 09: Node searchNode(int d); 10: // 介面方法: 插入節點 11: void insertNode(Node ptr, int d); 12: // 介面方法: 刪除節點 13: int deleteNode(Node ptr); 14: } 3-2 鏈結串列的基礎-使用陣列實作線性串列 3-2 鏈結串列的基礎-使用陣列實作線性串列(問題) 複雜的新增與刪除運算:在新增或刪除名單時,因為陣列儲存

您可能关注的文档

文档评论(0)

magui + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档