迴圈鍊錶的定義以及常見操作

2021-09-27 13:22:25 字數 3164 閱讀 8222

//從第乙個結點開始

for(i =

1; currnode&&i < pos -

1; i++

)//開始遍歷節點,找到當前節點

if(currnode)

//當前節點非空}}

void

printcircularlinklist

(circularlinklist* clist)

circularnode* node = clist->next;

//頭指標指向頭節點

for(i =

0; i < clist->length; i++

)//迴圈列印節點資料

printf

("\n");

}int

delcircularlinklist_node

(circularlinklist* clist,

int pos)

clist->next = node->next;

//頭指標指向刪除節點的下乙個節點

lastnode->next = clist->next;

//最後乙個節點指向刪除節點的下乙個節點

free

(node)

;//釋放節點

clist->length--

;//節點長度減一

}return0;

//空鍊錶,什麼都不返回

}//考慮刪除的節點的位置不是第乙個

circularnode* pernode=

null

;//當前節點的前乙個節點

circularnode* node = clist->next;

//當前節點

for(i =

1; node&&i < pos; i++

)//迴圈找到當前節點和當前節點的前乙個節點

if(node)

//如果當前節點為真

return value;

//返回當前節點的值

}circularnode*

getcircularlinklist_node

(circularlinklist* clist,

int value)

do node = node->next;

}while

(node!=clist->next)

;return

null;}

void

show_circularlinklist

(circularlinklist* clist,circularnode* node)

circularnode* orignode = node;

dowhile

(node != orignode);}

"#ifndef _circularlist_h

#define _circularlist_h

#include

#include

#include

//注意:帶有頭結點的迴圈鍊錶,尾節點的指標域同樣指向第乙個結點,而不是頭結點!

typedef

int datatype;

//迴圈鍊錶的結點

typedef

struct circularnode

circularnode;

//迴圈鍊錶的結構

typedef

struct circularlinklist //頭節點

circularlinklist;

extern

void

insertcircularlinklist

(circularlinklist* clist,

int pos,

int value)

;extern

void

printcircularlinklist

(circularlinklist* clist)

;extern

intdelcircularlinklist_node

(circularlinklist* clist,

int pos)

;extern

void

show_circularlinklist

(circularlinklist* clist, circularnode* node)

;extern circularnode*

getcircularlinklist_node

(circularlinklist* clist,

int value)

;#endif

#include

"circularlist.h"

intmain

(void

)printcircularlinklist

(clist1)

;//列印節點

k=getcircularlinklist_node

(clist1,3)

;show_circularlinklist

(clist1, k)

;//通過第三個節點的位址遍歷節點

delcircularlinklist_node

(clist1,5)

;//刪除值為5的節點

printf

("\n");

printcircularlinklist

(clist1)

;//遍歷節點

system

("pause");

return0;

}

鍊錶的常見操作

include include includeusing namespace std typedef struct nodetype node typedef struct dnodetype dnode 建立單鏈表 node createlist node head node current he...

鍊錶的常見操作

鍊錶是資料結構的重要內容,在電腦程式中應用廣泛,同時也是各公司筆試題目的重點。以下簡單實現了鍊錶的一些操作,包括建立 增加節點 刪除節點 單鏈表逆置 合併有序鍊錶等。一 鍊錶建立 鍊錶主要有三種形式,包括單鏈表 雙鏈表和迴圈鍊錶。單鏈表每個節點只包含乙個後驅指標,雙鏈表節點同時包含乙個前驅指標和乙個...

鍊錶的常見操作

鍊錶是資料結構的重要內容,在電腦程式中應用廣泛,同時也是各公司筆試題目的重點。以下簡單實現了鍊錶的一些操作,包括建立 增加節點 刪除節點 單鏈表逆置 合併有序鍊錶等。一 鍊錶建立 鍊錶主要有三種形式,包括單鏈表 雙鏈表和迴圈鍊錶。單鏈表每個節點只包含乙個後驅指標,雙鏈表節點同時包含乙個前驅指標和乙個...