// 迴圈鍊錶
// 迴圈鍊錶的最大的特點是尾結點的指標域指向第乙個結點
// 優點是能夠通過任意結點遍歷整個鍊錶結構
#include#includeusing namespace std;
// 1、定義資料元素
struct elementtype
;elementtype dataarray = ,,,
,};// 2、定義迴圈鍊錶結點
struct circularnode
;// 3、定義鍊錶結構
struct circularlinklist
;// 4、在迴圈鍊錶的指定位置插入元素,定義插入函式
// 第一種情況:鍊錶的長度為0
// 第二種情況:鍊錶的長度不為0
void insertcircularlinklist(circularlinklist* clist, int pos, elementtype element);
// 5、列印迴圈鍊錶
void printcircularlinklist(circularlinklist* clist);
// 6、 初始化迴圈列表
void initcircularlinklist(circularlinklist* clist, elementtype* dataarray, int length);
// 7、刪除並返回迴圈鍊錶中指定位置的元素
elementtype deletecircularlinklist(circularlinklist* clist, int pos);
// 8、根據元素內容返回對應的結點指標
circularnode* getcircularlinklistnode(circularlinklist* clist, elementtype element);
// 9、通過給定的某個結點,迴圈遍歷出煉表中的每個元素
void printcircularlinklistbynode(circularlinklist* clist, circularnode* node);
void test()
int main()
void insertcircularlinklist(circularlinklist* clist, int pos, elementtype element)
lastnode->next = node;
} clist->next = node;
clist->length++;
return;
} else
if (currnode)}}
}void printcircularlinklist(circularlinklist* clist)
circularnode* node = clist->next;
for (int i = 0; i < clist->length; i++) }
void initcircularlinklist(circularlinklist* clist, elementtype* dataarray, int length)
}elementtype deletecircularlinklist(circularlinklist* clist, int pos)
clist->next = node->next;
lastnode->next = clist->next;
delete(node);
clist->length--;
} return element;
} circularnode* prenode = null;
circularnode* node = clist->next;
for (int i = 1; node && i < pos; i++)
if (node)
return element;
}circularnode* getcircularlinklistnode(circularlinklist* clist, elementtype element)
while (node != clist->next);
return null;
}void printcircularlinklistbynode(circularlinklist* clist, circularnode* node)
// 記錄下初始的結點指標
circularnode *orignode = node;
do while (node != orignode);
}
資料結構 迴圈鍊錶
近期我在學習資料結構,於是我自己整理了單鏈表 迴圈單鏈表 雙向鍊錶 雙向迴圈鍊錶的相關 以鞏固這段時間的學習,也希望能夠幫助初學者,希望大家在閱讀以下 時發現問題糾正於我,一起 cyclinklist.h ifndef cyclinklist h define cyclinklist h inclu...
資料結構 迴圈鍊錶
迴圈鍊錶的結點 typedef struct circularnodecircularnode 迴圈鍊錶結構 typedef struct circularlinklistcircularlinklist 在迴圈鍊錶的指定位置插入元素 void insertcircularlinklist circ...
資料結構 迴圈鍊錶
start reading 在知道熟悉單鏈表的操作後,我們知道鍊錶有乙個資料域存放具體的資料,有乙個next域存放後繼的位址,如果我們將尾結點的next域指向之前的任意乙個節點,那麼就形成了乙個環。下面我們就來說說迴圈鍊錶 如圖就是乙個迴圈鍊錶 在對迴圈鍊錶進行操作時要注意尾結點的後繼不是null,...