由同型別資料元素構成有序序列的線性結構
list makeempty()
int find(elementtype x,list ptrl)
void insert(elementtype x,int i,list ptrl)
if(i<1||i>ptrl->last+2)
for(j=ptrl->last;j>=i-1;j)
ptrl->data[j+1]=ptrl->data[j]; //將a[i]-a[n]倒序向後移動
ptrl->data[i-1]=x; //新元素插入
ptrl->last++; //last仍指向最後的元素
return;
void delete(int i,list ptrl)
for(j=i;j<=ptrl->last;j++)
ptrl->data[j-1]=ptrl->data[j];
ptrl->last--;
return;
增刪改查利用陣列的連續儲存空間順序存放線性表的各元素
typedef struct lnode*list;
struct lnode;
struct lnode l;
list ptrl;
求表長int length(list ptrl0
return j; //時間複雜度o(n)
}
查詢
按序號查詢
list findkth(int k,list ptrl0
if(i==k)return p;//找到第k個 返回指標
esle return null;
}
按值查詢
list find(elementtype x,list ptrl)
插入(在第i-1(1<=i<=n+1)個結點後插入乙個值為x的新結點)
先構造乙個新結點,用s指向;
再找i到鍊錶的第i-1個結點,用p指向;
然後修改指標,插入結點(p之後插入新結點是s)
list insert(elementtype x,int i,list ptrl)
p=findkth(i-1,ptrl);
if(p==null)
else
}
刪除(刪除鍊錶的第i(1<=i<=n)個位置上的結點)
先找到鍊錶的第i-1個結點,用p指向;
再用指標s指向要被刪除的結點(p的下乙個結點);
然後修改指標,刪除s所指結點;
釋放s所指結點的空間
list delete(int i,list ptrl)
p=findkth(i-1,ptrl);
if(p=null)
else if(p->next==null)
else
}
線性結構 線性表
線性結構 線性表 棧 佇列 串和陣列 線性結構的特點 除了第乙個元素和最後乙個元素外,每個資料元素有乙個前驅和乙個後繼,線性表是最簡單 最基本 最常用的資料結構,它有順序儲存和鏈式儲存兩種儲存方案 線性表是n個資料元素的有限序列,在表中,元素之間存在著線性的邏輯關係 特點 同一性 線性表由同類元素組...
線性結構 線性表
資料結構是 adt abstract data type,資料抽象型別 的物理實現。什麼是線性表?線性表 由同型別的資料元素構成有序序列的線性結構 兩種實現模型 順序表,鍊錶 資料物件集 n個元素構成的有序序列 初始化鍊錶 init 返回鍊錶長度 len 判斷為空 is empty 指定位置新增 i...
1 線性結構 線性表
由同型別資料元素構成有序序列的線性結構。利用陣列的連續儲存空間順序存放線性表的個元素。typedef struct lnode list struct lnode struct lnode l list ptrl 初始化 建立空的順序表 list makeempty 查詢int find eleme...