1. 順序表
#include typedef struct lnode *list;struct lnode
;struct lnode l;
list ptrl;
// 1. 初始化(建立空的順序表)
list makeempty()
// 2. 查詢
int find(elementtype x, list ptrl)
// 3. 插入(第i(1<=i<=n+1)個位置上插入乙個值為x的新元素)
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[i - 1] = x; // 新元素插入
ptrl->last ++; // last仍指向最後元素
return ;
} // 4. 刪除 (刪除表第i(1<=i<=n)個位置上的元素)
void delete(int i, list ptrl)
for(j = i; j <= ptrl->last; ++ j)
ptrl->last --; // last仍指向最後元素
return ;
}
2. 鍊錶
#include typedef struct lnode *list;struct lnode
;struct lnode l;
list ptrl;
// 1. 求表長
int length(list ptrl)
return j;
} // 2. 查詢
// (1) 按序號查詢: findkth;
list findkth(int k, list ptrl)
if(i == k) return p; // 找到第k個, 返回指標
else return null; // 否則返回空
} // (2) 按值查詢: find
list find(elementtype x, list ptrl)
return p;
} // 3. 插入( 在第i-1(1<=i<=n+1)個結點後插入乙個值為x的新結點)
list insert(elementtype x, int i, list ptrl)
p = find(i - 1, ptrl); // 查詢第i-1個結點
if(p == null) // 第i-1個不存在, 不能插入
else }
// 4. 刪除
list delete(int i, list ptrl)
p = findkth(i - 1, ptrl); // 查詢第i-1個結點
if(p == null)
else if(p->next == null)
else
}
線性表及其實現
類項名稱 線性表 list 資料物件集 n個元素的構成的有序序列 n 0 操作集 l list,x elementtype,整線性表的基本操作主要有 如下 線性表的基本操作 list makeempty 初始化乙個空的線性表 elementtype findkth int k list l 返回位序...
資料結構 2 1線性表及其實現
線性結構是資料結構裡面最基礎最簡單的一種資料結構型別,最典型的一種叫做線性表。舉個例子 如何用程式語言來表示這樣的乙個一元多項式及其相應的操作運算呢?順序儲存結構直接表示 用乙個陣列儲存第i項的係數ai,而指數對應這個分量的下標 這樣帶來的問題是什麼呢?假如我要表示x的兩千次方,陣列的大小就需要20...
資料結構2 1 線性表及其實現
操作集 線性表 list,元素x elementtype,線性表的基本操作有 線性表的順序儲存實現 typedef struct lnode list struct lnode struct lnode l list ptrl 訪問下標為i的變數 l.data i ptrl data i 返回線性表...