每天一练-c语言点点滴滴-约瑟夫环:
来源:互联网 发布:淘宝店铺全套装修 编辑:程序博客网 时间:2024/05/17 04:07
约瑟夫环:
当节点的指针域指向头结点的时候表示空!
#include <stdio.h> #include <stdlib.h> typedef struct node { int data; struct node *next;}list,node;list *create_list(int a[], int n){ if ((NULL ==a) || (n <= 0)){ return NULL;}list *head=NULL, *p=NULL, *q=NULL;//构造第一个结点 head = (node *)malloc(sizeof(node)); head->data = a[0]; head->next = NULL; q = head; //构造其它节点int i=1; for (i; i<n; i++) { //构造节点 p = (node *)malloc(sizeof(node)); p->data = a[i]; p->next = NULL; //将节点加入链表 q->next = p; q = q->next; } q->next = head; return head; } void show_list(list *head) { if (NULL != head) { list *p=head; printf("%d ", p->data); while (p->next!= head) { p=p->next; printf("%d ", p->data); } printf("\n"); } } void delete_node(list *head, int k, int m) { if ((NULL == head) || (k < 0)) { return; } list *p=head, *q=NULL; //算约瑟夫环大小 int len = 1; while (p->next != head) { ++len; p = p->next; } p = head; //找报数的起点 while (k-- > 1) { p = p->next; } q = p; while (len > 1) { //开始数mint i; for( i; i<m; i++) { p = q; printf("%d\n", p->data); q = q->next; printf("%d\n", q->data); } p->next = q->next;//删除节点 printf("delete node is: %d\n", q->data); q = p->next; --len; } printf("last node is: %d\n", p->data); } int main() { int a[10] = {1,2,3,4,5,6,7,8,9}; list *head = NULL; head = create_list(a,9); show_list(head); delete_node(head, 1, 2); return 0; }
12345678910
1 2 3 4 5 6 7 8 9 delete node is: 1delete node is: 2delete node is: 3delete node is: 4delete node is: 5delete node is: 6delete node is: 7delete node is: 8last node is: 1
- 每天一练-c语言点点滴滴-约瑟夫环:
- c语言中的点点滴滴
- C语言点点滴滴
- c语言的点点滴滴
- C语言/约瑟夫环问题
- 【C语言】 约瑟夫环问题
- C语言课程设计-约瑟夫环
- C语言程序: 约瑟夫环
- C语言-实现约瑟夫环
- C语言实现约瑟夫环
- c语言每日一练5
- c语言每日一练6
- c语言每日一练7
- 【20170924】C语言每日一练
- 【20170926】C语言每日一练
- 【20170927】C语言每日一练
- 【20170928】C语言每日一练
- 【20170929】C语言每日一练
- 如何共享文件夹
- java实现算法设计之导弹拦截
- 邂逅明下
- IO模型及select、poll、epoll和kqueue的区别
- android中ListView异步加载图片时的图片错位问题解决方案(1)
- 每天一练-c语言点点滴滴-约瑟夫环:
- 《30天自制操作系统》第一天
- 《OOD启思录》 - 书摘精要
- 数据库利用出生日期查询(年龄)的sql语句
- 数据库,角色,用户,安全
- ASMCMD中的各个命令
- java实现算法设计之走楼梯
- 解决Android ListView中图片异步加载错位问题(2)
- uva 10194Football (aka Soccer)