迴圈單鏈表及其相關操作實現

2021-10-25 07:45:27 字數 2326 閱讀 8509

迴圈鍊錶的結束條件為p == list.phead

#include

//鍊錶結點

typedef

struct listnode

listnode;

//煉表頭

typedef

struct list

list;

//初始化

void

init

(list &list)

//銷毀鍊錶

void

destroy

(list &list)

while

(p != list.phead)

;//判斷條件:若當前結點等於頭結點,說明鍊錶走了一圈,結束了。

} list.length =0;

list.phead =

null;}

intmod

(list &list,

int index)

//獲得索引處的結點

listnode *

getnode

(list &list,

int index)

}return p;

}//插入鍊錶結點

void

insert

(list &list,

int index,

int value)

else

listnode *p = new listnode;

p->val = value;

if(index != list.length)

else

}else

else

} list.length++;}

//刪除鍊錶結點

void

remove

(list &list,

int index)

else

delete p;

list.length--;}

}//getlength

intgetlength

(list &list)

//get

intget

(list &list,

int index)

return n;

}//set

void

set(list &list,

int index,

int value)

}//find

intfind

(list &list,

int value)

pos++

; p = p->pnext;

}while

(list.phead != p);}

// 當找不到時,p走到鍊錶尾部,此時對應的pos是 list.length

if(pos == list.length)

return pos;

}//findnode

listnode *

findnode

(list &list,

int value)

p = p->pnext;

}while

(list.phead != p);}

if(got !=1)

return p;

}int

prev

(list &list,

int index)

intnext

(list &list,

int index)

//prevnode

listnode *

prevnode

(list &list, listnode *pcrt)

listnode *pprev = list.phead,

*p =

null

;int got =0;

if(null

!= pprev)

pprev = p;

}while

(pprev != list.phead);}

if(got !=1)

return pprev;

}//nextnode

listnode *

nextnode

(listnode *p)

//print

void

output

(list &list)

while

(list.phead != p);}

printf

("\n");

}

迴圈單鏈表的實現以及相關操作

如果有不足之處我會加以改正,都是個人理解難免有錯誤的地方請諒解。由之前的單鏈表 雙鏈表在到迴圈鍊錶三個鍊錶之間有很多重複和相似的地方。大體的邏輯關係是一致的,不同地方在於首位和每個節點之間的關係 單鏈表 每個節點之間依靠指標鏈結 方向為頭 尾 頭節點和尾節點 next均為null雙鏈表 每個節點之間...

單鏈表及其基本操作

資料結構在 優化以及設計過程的地位不可忽視,資料結構裡包含很多內容,後續會一 一附上。此騙部落格主要談單鏈表,主要從其定義及建立,再完成乙個簡單的歸併練習進行描述 在鍊錶儲存中,每個節點不僅包含所存元素的資訊,還包含元素之間邏輯關係的資訊。這麼說有點抽象,我們可以這麼理解 單鏈表中前驅結點包含後繼結...

單鏈表相關操作

這是自己寫的最長的一次 了 在機房敲了一天。以前一直用list來水鍊錶的題 這次終於體會到痛苦了 include include include include include include using namespace std typedef struct node 單鏈表 s,list vo...