1、靜態鍊錶的操作
//靜態鍊錶
#include
#include
#define maxsize 1000
#define ok 1
#define error -1
typedef
int elemtype;
typedef
int status;
typedef
struct
component,staticlinklist[maxsize]
;status initlist
(staticlinklist space)
//備用鍊錶
intmalloc_sll
(staticlinklist space)
status listlength
(staticlinklist l)
return j;
}status listinsert
(staticlinklist l,
int i,elemtype e)
return error;
}void
free_ssl
(staticlinklist space,
int k)
status listdelete
(staticlinklist l,
int i)
2、雙向鍊錶的操作
#include
#include
#define ok 1
#define error -1
typedef
int elemtype;
typedef
int status;
typedef
struct dulnodedulnode,
*dulinklist;
void
initlist
(dulinklist *l)
;void
createlist
(dulinklist *l)
;int
getelem
(dulinklist l,
int i)
;int
locateelem
(dulinklist l,elemtype key)
;void
dullinkinsert
(dulinklist l,
int i,elemtype e)
;void
deletedulist
(dulinklist l,
int i)
;void
display
(dulinklist l)
;int
main()
void
initlist
(dulinklist *l)
//建立
void
createlist
(dulinklist *l)
p->next=
null;}
//按序號查詢
intgetelem
(dulinklist l,
int i)
return p->data;
}int
locateelem
(dulinklist l,elemtype key)
return i;
}//指定位置插入
void
dullinkinsert
(dulinklist l,
int i,elemtype e)
s=(dulinklist)
malloc
(sizeof
(dulnode));
s->data=e;
s->next=p->next;
if(p->next!=
null
) p->next->prior=s;
p->next=s;
s->prior=p;
}//指定位置刪除
void
deletedulist
(dulinklist l,
int i)
q=p->next;
p->next=q->next;
q->next->prior=p;
free
(q);
}void
display
(dulinklist l)
printf
("\n");
if(i==0)
printf
("null!");
}
3、雙向鍊錶的合併
//雙向鍊錶
#include
#include
#define ok 1
#define error -1
typedef
int elemtype;
typedef
int status;
typedef
struct dulnodedulnode,
*dulinklist;
void
initlist
(dulinklist *l)
;void
createlist
(dulinklist *l)
;int
getelem
(dulinklist l,
int i)
;int
locateelem
(dulinklist l,elemtype key)
;void
dullinkinsert
(dulinklist l,
int i,elemtype e)
;void
deletedulist
(dulinklist l,
int i)
;void
display
(dulinklist l)
;dulinklist merge
(dulinklist la,dulinklist lb)
;int
main()
void
initlist
(dulinklist *l)
//建立
void
createlist
(dulinklist *l)
p->next=
null;}
void
display
(dulinklist l)
printf
("\n");
if(i==0)
printf
("null!");
}dulinklist merge
(dulinklist la,dulinklist lb)
else
}while
(pa!=
null
)while
(pb!=
null
)free
(la)
;free
(lb)
;return lc;
}
資料結構 鍊錶 雙向鍊錶
注意typedef的定義結構,以及dinklist的資料型別 typedef struct dnode dnode,dinklist 注意插入第乙個結點時,prior指標的空指向問題 if l next null 若l後繼結點為空 則省略該步驟 l next prior p 基本 頭插法建立雙向鍊錶...
資料結構鍊錶 靜態鍊錶
1 在這裡我們首先要複習一下鍊錶c語言的定義 這看起來很簡單,但實際上至關重要!data域 存放結點值的資料域。next域 存放結點的直接後繼的位址 位置 的指標域 鏈域 也就是說next域儲存的是乙個位址,這個位址是下一節點的位址。注意 鍊錶通過每個結點的鏈域將線性表的n個結點按其邏輯順序鏈結在一...
資料結構雙向鍊錶 C
博主 牆角黑貓 1 原理解釋 雙向鍊錶的理解是在每個節點之間存在雙向的連線,例如和單鏈表對比 單鏈表是 a b c d 每個節點是單向連線的,a只能指向b,從b無法直接到a。而雙向鍊錶是 a b c d 這樣就實現了a和b的完全互通。大家可以結合下圖理解一下!2 部分 include include...