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 ...