鏈表類 課件 【考點打靶+定向訓練】 高中信息技術選修1_第1頁
鏈表類 課件 【考點打靶+定向訓練】 高中信息技術選修1_第2頁
鏈表類 課件 【考點打靶+定向訓練】 高中信息技術選修1_第3頁
鏈表類 課件 【考點打靶+定向訓練】 高中信息技術選修1_第4頁
鏈表類 課件 【考點打靶+定向訓練】 高中信息技術選修1_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2.2鏈表鏈表類水果類類是現實世界或思維世界中的實體在計算機中的反映,用來描述具有相同的屬性和方法的對象的集合,它定義了每個對象所共有的屬性和方法。在Python中,對象用類創(chuàng)建。類被稱為類對象,類的實例被稱為類的對象。創(chuàng)建一個新類意味著創(chuàng)建一個新類型的對象,從而允許創(chuàng)建一個該類型的對象實例。每個類的實例可以擁有保存自己狀態(tài)的屬性和改變自己狀態(tài)的、定義在類中的方法。類和實例舉例:新建一個類對象“蔬菜”,里面可以有“白菜”、“青菜”、“西紅柿”這些對象。類的定義Python使用class關鍵字來定義類,其語法格式如下:類是抽象的,要使用類定義的功能,就必須進行類的實例化,即創(chuàng)建類的對象,其語法格式為:對象名=類名(參數列表)。類中的屬性①類的數據成員是在類中定義的成員變量,用來存儲描述類的狀態(tài)特征的值,也稱為屬性。屬性可以被該類中定義的方法訪問,也可以通過類的對象進行訪問。②通過“self.變量名”定義的屬性,稱為類的對象屬性,屬于類實例化的特定對象。對象屬性在類的內部通過“self.變量名”訪問,在外部通過“對象名.變量名”來訪問。

③類屬性屬于整個類,是在類中所有方法之外定義的變量,所有實例之間共享一個副本。類屬性在類的內部通過“類名.類屬性名”或“self.類屬性名”訪問,在外部可以通過類對象和實例對象訪問公有的類屬性,但不能訪問私有的類屬性。類的對象方法①類的對象方法對類的某個實例化對象進行操作,一般以self作為其第一個形式參數(也可以使用其他名字)。聲明對象方法的語法格式如下:方法的調用格式為:對象名.方法名([實參列表])。②注意:雖然對象方法的第一個參數是self,但是在調用時,用戶不需要也不能給該參數傳遞值,Python會自動地把對象傳遞給self參數。(拓展選學)鏈表類在python中沒有指針,不能直接進行鏈表操作,但是python面向對象編程可以定義一個鏈表類來進行鏈表操作。在類中設定鏈表和節(jié)點的屬性、方法,在后續(xù)的程序中可以直接運用。(1)單向鏈表的類定義通常使用兩個類來協調表示單向鏈表,即單向鏈表的節(jié)點類(LinkNode)和單向鏈表類(LinkList)。先定義單向鏈表的節(jié)點類,代碼如下:#定義節(jié)點類LinkNode#初始化節(jié)點包含兩個區(qū)域self.data、self.next#self.data區(qū)域保存數據#self.next區(qū)域保存指針再定義單向鏈表類,代碼如下:(2)單向鏈表節(jié)點的訪問鏈表節(jié)點只能通過頭指針(head)進行訪問,其他節(jié)點通過節(jié)點間的指針依次訪問??梢栽O計類的魔術方法__str__(),當使用print()函數輸出類對象的值時,會自動調用__str__()方法,依次輸出鏈表的所有節(jié)點,代碼如下:(3)單向鏈表節(jié)點的插入在鏈表中插入新節(jié)點時,無需移動鏈表中的元素,只要修改鏈表中節(jié)點指針域的值,就能高效地實現插入操作。在單向鏈表插入新節(jié)點可能會出現三種情況,從表頭插入、從中間插入或追加在表尾。①當從表頭插入時,可以設計類的方法prepend(),代碼如下:②當從表尾插入時,可以設計類的方法append(),代碼如下:③當從表中間插入時,可以設計類的方法insert(),代碼如下:(4)單向鏈表節(jié)點的刪除單向鏈表中元素的刪除比較簡單。若要刪除節(jié)點號為index的節(jié)點,則只需找到其前驅節(jié)點,修改前驅節(jié)點的next指針指向其后繼節(jié)點。當index越界時刪除尾節(jié)點;若刪除了頭節(jié)點,則需要修改頭指針。可以設計類的方法pop(),代碼如下:練一練1.已知學生類的定義如下:Classstudent:def_init_(self,name,age_=18,sex_=“女”):=nameself.age=age_self.sex=sex_def_str_(self):returnf”姓名:{},年齡:{self.age},性別:{self.sex}”下列代碼段定義了一個學生類的實例a,并輸出其值:a=student(”王麗”,”16”)print(a)則執(zhí)行該段程序后,程序輸出的值為:A.姓名:王麗,年齡:16,性別:B.姓名:王麗,年齡:18,性別:女C.姓名:王麗,年齡:16,性別:女D.姓名:王麗,年齡:18,性別:女C2.已知單向鏈表類的定義如下:classlinklist:def_init_(self):self.head=None則不帶頭節(jié)點的單向鏈表a為空的判定條

溫馨提示

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

評論

0/150

提交評論