單向鍊錶迴圈

2021-07-04 21:46:12 字數 1767 閱讀 5408

#include #include #include #include #includetypedef struct looplink

looplink, *plooplink; //設定結點物件,包含兩個成員,nvalue和指向下乙個物件的指標pnext

plooplink create()

phead->nvalue = -9999;

phead->pnext = phead; //為表頭中的資料成員進行賦值,,,nvalue,,和pnext指標

return phead; //返回 表頭給建立的物件

}void insert(plooplink phead, int nvalue)

//檢視表頭是否建立,

plooplink pcur = phead;

plooplink ptmp = (plooplink)malloc(sizeof(looplink)); //為插入的值(物件)開闢乙個儲存空間,用於儲存nvalue和pnext指標

ptmp->nvalue = nvalue; //為插入的物件的資料成員進行賦值

ptmp->pnext = null;

while (pcur->pnext != phead)

pcur = pcur->pnext;

}ptmp->pnext = pcur->pnext;

pcur->pnext = ptmp; //插入操作,因為是按從小到大進行插值的,插入的物件的[nex指標指向的是大值得指標,

}void delete(plooplink phead, int nvalue)

plooplink pcur = phead;

while (pcur->pnext!= phead)

else

}}plooplink find(plooplink phead, int nvalue)

plooplink pcur = phead; //首先,得到鍊錶的首位址,進行查詢

while (pcur->pnext!= phead) //退出迴圈的條件是最後的物件的pnext指向表頭,代表了迴圈到頭

else

}return null; //都沒有的話,返回null

}bool isempty(plooplink phead)

return phead->pnext == phead;

}void print(plooplink phead)

if (phead->pnext == phead)

//迴圈結束的條件,物件的pnext指向表頭

plooplink pcur = phead->pnext;

while (pcur != phead)

printf("\n");

}int main()

else

print(phead); //列印鍊錶中的資料,首先從表頭開始,然後指向下乙個物件輸出值,然後指向下乙個物件輸出。。。。。

system("pause");

return 0;

}

單向迴圈鍊錶

單向迴圈鍊錶.cpp 定義控制台應用程式的入口點。include stdafx.h include include clinklist.h using namespace std int tmain int argc,tchar argv int n 5 測試空鍊錶 clinklistclist a...

迴圈單向鍊錶

typedef struct list list 初始化乙個迴圈單向鍊錶 void list init list head 判斷鍊錶是否為空 int is list empty list head 往迴圈單向鍊錶中插入乙個元素 prev 在prev元素後面插入 void list insert li...

單向迴圈鍊錶

帶頭節點 指向頭節點的指標header不能改變位址!每次輸入資料都要重新找回最後乙個節點,在輸出資料時,要把最後乙個節點的next指向null include include typedef struct link node void builddoublelink node header else...