mooc浙江大學陳越、何欽銘 老師的課程刷課筆記
一、線性表的c語言實現
typedef intposition;
typedef
struct lnode *list;
struct
lnode ;
/*初始化
*/list makeempty()
/*查詢
*/#define error -1position 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
;}
二、鍊錶的c語言實現
typedef struct lnode *ptrtolnode;struct
lnode ;
typedef ptrtolnode position;
typedef ptrtolnode list; /*
查詢 */
#define error nullposition find( list l, elementtype x ) /*
帶頭結點的插入
*//*
*/bool
insert( list l, elementtype x, position p )
else }
/*帶頭結點的刪除
*//*
*/bool
delete( list l, position p )
else
}
三、堆疊
1.順序儲存
typedef intposition;
struct
snode ;
typedef
struct snode *stack;
stack createstack(
intmaxsize )
bool
isfull( stack s )
bool
push( stack s, elementtype x )
else}
bool
isempty( stack s )
elementtype pop( stack s )
else
return ( s->data[(s->top)--] );
}
2.鏈式儲存
typedef struct snode *ptrtosnode;struct
snode ;
typedef ptrtosnode stack;
stack createstack( )
bool
isempty ( stack s )
bool
push( stack s, elementtype x )
elementtype pop( stack s )
else
}
四、佇列
1.線性儲存
typedef intposition;
struct
qnode ;
typedef
struct qnode *queue;
queue createqueue(
intmaxsize )
bool
isfull( queue q )
bool
addq( queue q, elementtype x )
else}
bool
isempty( queue q )
elementtype deleteq( queue q )
else
}
2.鏈式儲存
typedef intposition;
struct
qnode ;
typedef
struct qnode *queue;
queue createqueue(
intmaxsize )
bool
isfull( queue q )
bool
addq( queue q, elementtype x )
else}
bool
isempty( queue q )
elementtype deleteq( queue q )
else
}
資料結構之線性結構 線性表,堆疊,佇列
對於線性表的操作 1 建立線性表 2 確定線性表的長度 3 確定線性表是否為空 4 訪問表中指定位置的節點的值 5 查詢指定值在表中的位置 6 在表中指定位置插入乙個新節點 7 刪除表中指定位置的節點 2.線性表的鏈結儲存結構 用鏈結方式儲存的線性表稱為鍊錶。優點 不必調整節點的位址,儲存單元對儲存...
資料結構 線性表 鍊錶
在之前了解完什麼是資料結構之後 資料結構 線性表 順序表 陣列 我們再來看看線性結構另外一種實現方式 鍊錶順序表中的鍊錶沒有物理上的連續儲存要求,只需要在儲存資料時通過 鏈 的方式將資料進行連線,而這個 鏈 的實現就是通過指標來實現的。鍊錶的連續儲存方式 對於抽象資料型別來說,每一種資料結構都有自己...
資料結構 線性表(陣列 鍊錶 棧 佇列)
線性邏輯結構特徵 集合中存在唯一的第乙個資料元素 最後乙個資料元素,集合中剩餘的每個資料元素均有唯一的直接前驅元素和唯一的直接後繼元素 它用一組連續的記憶體空間,來儲存一組具有相同型別的資料。陣列的空間是從棧分配的。陣列優點 簡單易用 訪問元素快 常數時間 陣列缺點 大小固定 是靜態的 並且要在使用...