#include
#include
typedef int elemtype;
typedef int status;
typedef struct node
listnode;
typedef listnode *linklist;
//初始化單向迴圈鍊錶
void initlist(linklist l)
//判斷單向迴圈鍊錶是否為空
int listempty(linklist l)
p->next = l;
}//建立單向迴圈鍊錶(頭插法)
/*void listcreate(linklist l, int n)
}*///遍歷單向迴圈鍊錶
void listtar(linklist l)
printf("\n");
}//銷毀單向迴圈線性表
void clearlist(linklist l)
l->next = l;
}//將第i個位置的元素返回
status getelem(linklist l, int i, elemtype *e)
if(p->next == l && j != i)
return 0;
*e = p->data;
return 1;
}//查詢元素e的位置
int locateelem(linklist l, elemtype e)
if(p->next == l && p->data != e)
return 0;
return i;
}//在第i個位置插入元素e
status listinsert(linklist l, int i, elemtype e)
if(p == l && j != i)
return 0;
s = (listnode *)malloc(sizeof(listnode));
s->data = e;
s->next = p;
r->next = s;
return 1;
}//刪除第i個位置的元素
status listdelete(linklist l, int i, elemtype *e)
if(p->next == l && j != i)
return 0;
r->next = p->next;
*e = p->data;
free(p);
return 1;
}//單向迴圈鍊錶元素的個數
int listlength(linklist l)
return i;
}//將遞減單迴圈鍊錶插入乙個結點,使鍊錶依然有序
void insertnode(linklist l, elemtype e)
if(p->next == l && p->data > s->data)
p = p->next;
r = r->next;}}
int main()
else
printf("error\n");
printf("input listdelete i:");
scanf("%d", &i);
if(listdelete(l, i, &e))
else
printf("error\n");
printf("listlength l:%d", listlength(l));
printf("input insertnode e:");
scanf("%d", &e);
insertnode(l, e);
listtar(l);
clearlist(l);
}else
printf("list empty\n");
return 0;
}
c語言單迴圈鍊錶
ifndef sclist h define sclist h include include include define elemtype int typedef struct node node,pnode typedef struct list list node buynode elemt...
約瑟夫環 C語言 單迴圈鍊錶
約瑟夫環 問題描述 編號為1,2,n的n個人圍坐一圈,每人持乙個密碼 正整數 一開始任選乙個正整數作為報數上限值m,從第乙個人開始自1開始順序報數,報到m時停止。報m的人出列,將他的密碼作為新的m值,從他的下乙個人開始重新從1報數,如此下去,直至所有人全部出列為止。試設計乙個程式求出列順序。問題分析...
單迴圈鍊錶
頭插 尾插 顯示 頭刪 尾刪 按值插入 按位置插入 查詢 長度 逆序 清除 摧毀 初始化 排序 按位置刪除 按值刪除 可以進一步優化 ifndef sclist h define sclist h include typedef int elementtype typedef enum bool 鍊...