迴圈鍊錶 C實現

2021-09-26 20:33:27 字數 1210 閱讀 1844

//沒有頭結點

#define _crt_secure_no_warnings

#include #include typedef struct list

list;

void creat_list(list **p)//如果鍊錶為空,則建立乙個鍊錶,指標域指向自己,否則尋找尾節點,將

else //輸入的鍊錶不是空的,尋找鍊錶的尾節點,使尾節點的next=新節點。新節點的next指向頭節點

}}void insert(list **pnode, int place, int num) //鍊錶的插入

else //在其他的地方插入節點。 同樣先找到要插入的位置,如果位置超出鍊錶的長度,自動插入隊尾。 tar new 原來是2 }

void delete(list **pnode, int place) //刪除操作

if (place == 1) //如果刪除的是頭節點

else

else

}}int findval(list *pnode, int val) //尋找值

if (node->next == pnode&&node->data != val)//尾節點指向頭節點就跳出,因此還要檢測一次為節點的data

return i;

}void show(list *p)//遍歷,迴圈鍊錶的遍歷最好用do while語句 ,因為頭節點就有值

while (temp != p);

printf("\n");

}int main()

建立迴圈鍊錶

迴圈鍊錶的插入

迴圈鍊錶的刪除

程式執行效果如圖:

C 實現迴圈鍊錶

vs2005執行通過,如有問題,請各位大牛指正。謝謝 注意 迴圈鍊錶含有頭結點 include using namespace std templatestruct node templateclass circlist templatecirclist circlist 初始化時,只有乙個頭結點,...

C 實現雙向迴圈鍊錶

雙向迴圈鍊錶 除錯正常,所有功能均測試 節點類 template class listnode listnode type d,listnode n nullptr,listnode p nullptr data d next n prev p void setdata type d 雙向迴圈鍊錶 ...

C實現迴圈鍊錶及雙向鍊錶

在雙向鍊錶中,結點除含有資料域外,還有兩個鏈域,乙個儲存直接後繼結點位址,一般稱之為右鏈域 乙個儲存直接前驅結點位址,一般稱之為左鏈域。鍊錶的c語言實現之迴圈鍊錶及雙向鍊錶 一 迴圈鍊錶 迴圈鍊錶是與單鏈表一樣,是一種鏈式的儲存結構,所不同的是,迴圈鍊錶的最後乙個結點的指標是指向該迴圈鍊錶的第乙個結...