線性表--順序表


一、什么是線性表

線性表是具有相同數據類型的n個數據元素的有限序列

即每個元素類型所占的空間大小相同。有次序的有限序列。

如:線性表L

L=(a₁,a₂,a₃....,ai,ai+1..,an)

除第一個元素外,每個元素有且只有一個直接前驅,除最后一個元素外,每個元素有且只有一個直接后繼。a₁為a₂的直接前驅,a₃為a₂的直接后繼。

二、順序表

順序表:

a₁
a₂
a₃
...
an

 

線性表的存儲順序又稱順序表。它是一組地址連續的存儲單元依次存儲在線性表中的數據元素。

線性表的順序存儲結構是一種隨機存取的存儲結構。

//線性表的描述
#define
MaxSize 50 //定義線性表的最大長度 typedef struct{ Elemtype data[MaxSize]; //順序表的元素 int length; //順序表的當前長度 }SqList; // 順序表的類型定義

對線性表的操作

1.插入操作:在第i(1<i<L.length)個位置插入新元素e

算法思想:

·判斷在范圍i內是否有效

·判斷空間存儲是否還有位置

·第i個元素及以后元素向后移

·在位置i處放入e

·表長+1

(線性表的位序從1開始,數組元素的下標從0開始)

2.刪除元素

 

 

 3.查找元素

 

 

 

 

 

 

 

 

 

 

bool  ListInsert( SqList & L, int i, ElemType e){
     if( i< 1|| i<length+ 1)    //判斷i的范圍是否有效
     return  false;
   e= L.data[i- 1];    //將刪除的元素賦值給e
    for( int j=i; j< L.length;j++)    //將i元素及向后移
    L.data[j- 1]= L.data[j];
    L.length--;
    return ture;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM