单链表实现约瑟夫环
来源:互联网 发布:最新电影免费观看软件 编辑:程序博客网 时间:2024/05/21 19:33
//单链表实现约瑟夫环
Node* Josephus(Node* hus, size_t k)
{
Node* man, *next;
assert(hus);
man = hus;
while (man->next != man)
{
int count = k;
while (--count)
{
man = man->next;
}
next = man->next;
man->data = next->data;
man->next = next->next;
free(next);
}
return man;
}
void TestTopic1()
{
//Node* pos = NULL;
Node* list = NULL;
Node* tail;
PushBack(&list, 1);
PushBack(&list, 2);
PushBack(&list, 3);
PushBack(&list, 4);
tail = Find(list, 4);
tail->next = list;
printf("live:%d",Josephus(list, 3)->data);
//PrintList(list);
//pos = Find(list, 3);
//InsertFront(pos, 30);
//EraseNonTail(pos);
//PrintTailToHead(list);
//PrintList(list);
}
输出结果:
live:1
Node* Josephus(Node* hus, size_t k)
{
Node* man, *next;
assert(hus);
man = hus;
while (man->next != man)
{
int count = k;
while (--count)
{
man = man->next;
}
next = man->next;
man->data = next->data;
man->next = next->next;
free(next);
}
return man;
}
void TestTopic1()
{
//Node* pos = NULL;
Node* list = NULL;
Node* tail;
PushBack(&list, 1);
PushBack(&list, 2);
PushBack(&list, 3);
PushBack(&list, 4);
tail = Find(list, 4);
tail->next = list;
printf("live:%d",Josephus(list, 3)->data);
//PrintList(list);
//pos = Find(list, 3);
//InsertFront(pos, 30);
//EraseNonTail(pos);
//PrintTailToHead(list);
//PrintList(list);
}
输出结果:
live:1
阅读全文
0 0
- 单链表实现约瑟夫环
- 单链表实现约瑟夫环
- 单链表实现约瑟夫环
- 单链表实现约瑟夫环示例
- 循环单链表实现约瑟夫环
- C 单链表 实现约瑟夫环
- 单链表实现约瑟夫环(JosephCircle)
- 约瑟夫环的单链表实现
- 【约瑟夫】编程实现约瑟夫环
- 约瑟夫环(约瑟夫问题) 采用循环单链表实现
- 约瑟夫环程序C++循环单链表实现
- java循环单链表实现约瑟夫环问题
- 采用循环单链表实现约瑟夫环
- 循环单链表实现约瑟夫环问题
- C语言单链表实现约瑟夫环
- C/C++,数据结构单链表实现约瑟夫环
- C语言实现单链表之约瑟夫环
- 单链表---实现约瑟夫环的问题
- RAM ROM
- unit 1 Linux下基本操作
- 在无头单链表的一个节点前插入一个节点
- 一张图彻底理解UML类图中的各种关系
- jsp页面代码练习
- 单链表实现约瑟夫环
- 关于协方差矩阵的理解
- C++面向对象、const和指针混用、函数参数的默认值
- 第四周项目4—猴子选大王
- 将Eclipse上普通Java Project移植到Linux上
- ArrayList循环遍历并删除元素的常见陷阱
- 循环链表小练习
- s5p6818
- KVO的底层实现原理