typedef int position;
typedef struct lnode *list;
struct lnode ;
/* 初始化 */
list makeempty()
/* 查詢 */
#define error -1
position find( list l, elementtype x )
/* 插入 */
bool insert( list l, elementtype x, position p )
if ( p<0 || p>l->last+1 )
for( i=l->last; i>=p; i-- )
l->data[i+1] = l->data[i]; /* 將位置p及以後的元素順序向後移動 */
l->data[p] = x; /* 新元素插入 */
l->last++; /* last仍指向最後元素 */
return true;
} /* 刪除 */
bool delete( list l, position p )
for( i=p+1; i<=l->last; i++ )
l->data[i-1] = l->data[i]; /* 將位置p+1及以後的元素順序向前移動 */
l->last--; /* last仍指向最後元素 */
return true;
}
typedef struct lnode *ptrtolnode;
struct lnode ;
typedef ptrtolnode position;
typedef ptrtolnode list;
/* 查詢 */
#define error null
position find( list l, elementtype x )
/* 帶頭結點的插入 */
bool insert( list l, elementtype x, position p )
else
}/* 帶頭結點的刪除 */
bool delete( list l, position p )
else
}
線性表的兩種實現
最近新學了資料結構的線性表,這裡先簡單的介紹一下。線性表是最基本 最簡單 也是最常用的一種資料結構。線性表中資料元素之間的關係是一對一的關係,即除了第乙個和最後乙個資料元素之外,其它資料元素都是首尾相接的 注意,這句話只適用大部分線性表,而不是全部。比如,迴圈鍊錶邏輯層次上也是一種線性表 儲存層次上...
資料結構學習 線性表
線性表一般分為順序結構和鏈式結構。順序表裡面元素的位址是連續的,如陣列 鍊錶裡面節點的位址不是連續的,是通過指標連起來的,如單鏈表 順序結構 優點 易於查詢,索引快 list n 這樣的操作,o 1 複雜度。缺點 擴充套件性弱,不易刪除 插入,這兩項操作均是o n 的時間複雜度 鍊錶結構 優點 擴充...
資料結構學習 線性表
考試前複習下資料結構,把一些知識點整理在這!主要參考了殷人昆主編的 資料結構 用物件導向方法與c 語言描述 這本書,以及中山大學劉聰老師的課件內容!鍊錶雙鏈表 線性表 linear list 是由n n 0 個資料元素 結點 a 0 a 1 a 2 a n 1 組成的有限序列。維基百科 線性表是乙個...