linklist.h
#ifndef link_list_h
#define link_list_h 1
#include #include #include struct stu
;struct stu *initlist(struct stu **head);
void destroylist(struct stu *head);
void clearlist(struct stu *head);
int listempty(const struct stu *head);
int listlength(const struct stu *head);
struct stu *getelem(const struct stu *head, int i);
void listinsert(struct stu *head, struct stu *new);
void listdelete(struct stu *node);
#endif /* link_list_h */
linklist.c
#include struct stu *initlist(struct stu **head)
memset(*head, 0, sizeof(struct stu));
(*head)->next = *head;
(*head)->pre = *head;
return *head;
}void destroylist(struct stu *head)
void clearlist(struct stu *head)
return;
}int listempty(const struct stu *head)
int listlength(const struct stu *head)
return i;
}struct stu *getelem(const struct stu *head, int i)
void listinsert(struct stu *head, struct stu *new)
void listdelete(struct stu *node)
資料結構四雙向鍊錶
雙向鍊錶也叫雙鏈表,是鍊錶的一種,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。所以,從雙向鍊錶中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。而之前的單鏈表為單向鍊錶,雙向鍊錶也就是在單鏈表的結點中增加乙個指向其前驅的pre指標。如圖 這裡介紹雙向鍊錶的常用操作 l ...
資料結構 003雙向鍊錶
雙鏈表 include using namespace std typedef int elemtype typedef struct lnode lnode,linklist 初始化 linklist init linklist 頭插法建立鍊錶 linklist head insert linkl...
資料結構實驗之鍊表九 雙向鍊錶
time limit 1000ms memory limit 65536kb submit statistic problem description 學會了單向鍊錶,我們又多了一種解決問題的能力,單鏈表利用乙個指標就能在記憶體中找到下乙個位置,這是乙個不會輕易斷裂的鏈。但單鏈表有乙個弱點 不能回指...