迴圈鍊錶(C語言版)

2021-09-18 09:13:11 字數 1655 閱讀 2849

circlelinklist.h

#define ok 1

#define error 0

typedef int status;

typedef int elemtype;

typedef struct cnode

cnode;

typedef struct cnode *clinklist;

status initclink(clinklist *cl);/*迴圈鍊錶初始化*/

status creatclink(clinklist *cl, int n);/*迴圈鍊錶的整表建立*/

status insertclink(clinklist *cl, int i, elemtype e);/*迴圈鍊錶的插入*/

status deleteclink(clinklist *cl, int i, elemtype *e);/*迴圈鍊錶的刪除*/

status nixuclink(clinklist *cl);/*迴圈鍊錶的逆序*/

int lenclink(clinklist cl);/*迴圈鍊錶的長度*/

void printclink(clinklist cl);/*列印迴圈鍊錶*/

status clearclink(clinklist *cl);/*迴圈鍊錶的整表刪除*/

circlelinklist.c

status initclink(clinklist *cl)

(*cl)->next = *cl;

return ok;

}status creatclink(clinklist *cl, int n)

r->next = *cl;

return ok;

}status insertclink(clinklist *cl, int i, elemtype e)

r = *cl;

for(j=1; jnext;

}p = (clinklist)malloc(sizeof(cnode));

if(!p)

p->data = e;

p->next = r->next;

r->next = p;

return ok;

}status deleteclink(clinklist *cl, int i, elemtype *e)

r = *cl;

for(j=1; jnext;

}p = r->next;

*e = p->data;

r->next = p->next;

free(p);

return ok;

}status nixuclink(clinklist *cl)

(*cl)->next = prev;

tem_head->next = *cl;

return ok;

}int lenclink(clinklist cl)

//printf("%d\n", len);

return len;

}void printclink(clinklist cl)

printf("\n");

}status clearclink(clinklist *cl)

(*cl)->next = (*cl);

return ok;

}

LeetCode 旋轉鍊錶 C語言版

題目 給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 k 個位置,其中 k 是非負數。輸入 1 2 3 4 5 null,k 2 輸出 4 5 1 2 3 null 解釋 向右旋轉 2 步 4 5 1 2 3 null 解題思路 首先用len記錄鍊錶長度 只需要用k模上len,就可以判斷是否鍊錶是否...

靜態鍊錶詳解(C語言版)

邏輯結構上相鄰的資料元素,儲存在指定的一塊記憶體空間中,資料元素只允許在這塊記憶體空間中隨機存放,這樣的儲存結構生成的鍊錶稱為靜態鍊錶。也就是說靜態鍊錶是用陣列來實現鏈式儲存結構,目的是方便在不設指標型別的高階程式語言中使用鏈式結構。它的優點是和動態鍊錶一樣,刪除和插入元素時間複雜度低 不足是和陣列...

棧的鍊錶實現(C語言版)

棧也是一種簡單常用的資料結構,他的特點是先進先出。現代化計算機將棧操作作為指令系統的一部分,棧也就有可能成為電腦科學中在陣列之後最基本的資料結構。所以,棧的重要性就不用多說了。其實現思路也比較簡單,這裡就不多解釋了,直接看 吧 include stack.h include struct node ...