大話數據結構-- 第三章 線性表

 

        線性表:零個或多個數據元素的有限序列。算法

        線性表元素的個數n(n>=0)定義爲線性表的長度,當n=0時,稱爲空表。數組

        線性表用數學語言來定義:spa

            若線性表記爲(a1,a2,a3,...,a(i-1),ai,a(i+1),...,an),則表中a(i-1)領先於ai,ai領先於a(i+1),則稱a(i-1)是ai的直接前驅元素,a(i+1)是ai的直接後繼元素,。當i=1,2,3,...n-1時,ai有且只有一個直接後繼元素,當i=2,3,4,...n時,ai有且只有一個前驅元素。指針

        線性表的順序存儲結構,指的用一段地址連續的存儲單元依次存儲線性表的數據元素數學

        線性表插入算法的思路:遍歷

            1.若是插入位置不合理,拋出異常。鏈表

            2.若是線性表長度大於等於數組長度,則拋出異常或動態增量數組。數據

            3.從最一個後元素的開始向前遍歷到第i個位置,分別將他們都向後移動一個位置。異常

            4.將要插入的數據填入位置i處。語言

            5.表長度加一。

        線性表刪除算法的思路:

            1.若是刪除位置不合理,拋出異常。

            2.去出刪除元素。

            3.從刪除元素位置開始遍歷到最後一個元素位置,分別將它們都向前移動一個位置。

            4.表長減一。

        線性表順序存儲結構的優缺點:

  •      優勢:    
    • 1.無需爲表示表中的元素之間的邏輯關係而增長額外的存儲空間
    • 2.能夠快速地存取表中的任意位置的元素。  ​​​​​​​​​​​​​​
  •      缺點:
    • 1.插入和刪除須要移動大量的數據。
    • 2.當線性表的長度變化較大時,難以肯定存儲空間的容量。
    • 3.形成存儲空間的「碎片」。
  • ​​​​​​​       得到單鏈表第i個數據的算法思路:
    • ​​​​​​​1.聲明一個節點p指向鏈表第一個節點,初始化j從1開始。
    • ​​​​​​​2.當j<i時就遍歷鏈表,讓p的指針向後移動,不斷指向下一個節點,j累加1;
    • 3.入到鏈表結尾p爲空,則說明第i個元素不存在。​​​​​​​
    • 4.不然查找成功,返回節點p的數據。

​​​​​​​​​​​​​​

相關文章
相關標籤/搜索