数据结构与算法-约瑟夫问题

原创 2015年07月08日 20:23:35
/*
功能:41个人围成一圈,第一个到第三个一次报数,数到3,自杀,下一个报1......
      求出自杀顺序!
时间:2015-07-08
人员:西瓜太郎
*/
#include <stdlib.h>
#include <stdio.h>
#define ElementType int
struct Node;
typedef struct Node *ptrNode;
typedef ptrNode List;

typedef struct Node
{
    ElementType data;
    struct Node *next;
}Node;
void initJosePList(List *L);
void deleteCirList(List L);
void printfCirList(List L);
int main()
{
    List L= NULL;//一定要初始化!!!
    initJosePList(&L);
    printfCirList(L);
    printf("\n约瑟夫:\n");
    deleteCirList(L);    
    return 0;
}
void initJosePList(List *L)
{
    List temp,target;
    int i = 1;
    while(i < 42)
    {
        if((*L) == NULL)//定义L的时候一定要初始化!!
        {
            (*L) = malloc(sizeof(struct Node));
            if(!(*L))
                exit(EXIT_FAILURE);
            (*L)->data = 1;
            (*L)->next = (*L);
            i++;
        }
        else
        {
            for(temp = (*L); temp->next != (*L); temp = temp->next)
                ;
            target = malloc(sizeof(struct Node));
            target->data = i;
            i++;

            temp->next = target;
            target->next = (*L);
        }    
    }
}

void deleteCirList(List L)
{
    List temp,target;
    int j;
    temp = L;
    for(j = 1; j < 42; j++)
    {
        temp = temp->next;

        target = temp->next;
        temp->next = target->next;

        temp = temp->next;

        printf(" %d",target->data);

        free(target);        
    }
    printf("\n");
}

void printfCirList(List L)
{
    List temp;
    for(temp = L; temp->next != L; temp=temp->next)
        printf("  %d",temp->data);
    printf("  %d\n",temp->data);

}

数据结构与算法(单循环链表_约瑟夫问题)

据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41...

【数据结构算法】约瑟夫环问题(线性表)

这是我写的第一个博客,目前读大二,如果写的有问题还请各位多多指教~ 众所周知,约瑟夫环问题是一个出现在计算机科学和数学中的问题,据说著名犹太历史学家 Josephus有过以下的故事:在罗马人...

线性表13|约瑟夫问题 – 数据结构和算法18

线性表13:约瑟夫问题   让编程改变世界 Change the world by program   约瑟夫问题   据说著名犹太历史学家 Josephus有过以下的故事: 在罗...

【数据结构和算法分析】循环链表及约瑟夫问题

循环链表及约瑟夫问题 循环链表:

数据结构与算法(4、约瑟夫环问题到循环链表)

首先先解释约瑟夫环问题,这个问题,背景其实挺残酷的,来自于一场自杀游戏,举个现实的例子,如果你有4个朋友,但是只能给一个人带饭,那么做这样的游戏,4个人围成一个环,你说从1开始数,数到2,就淘汰掉2,...

【数据结构与算法】约瑟夫环问题

约瑟夫环问题: 约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。 从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那...

数据结构与算法:约瑟夫问题

这里用到循环链表 #include #include #构造节点的自定义结构体类型变量 typedef struct node {      #数据部分      int data;...

数据结构与算法学习笔记04(约瑟夫问题)

数据结构与算法学习笔记04(约瑟夫问题)   约瑟夫问题 据说著名犹太历史学家 Josephus有过以下的故事: 在罗马人占领乔塔帕特后,39个犹太人与Josephus及他的朋友躲到一个洞中,...

菜鸟学习数据结构算法之路之约瑟夫环问题(循环链表)

今天继续学习数据结构算法这条不归路,忘记说了,这应该算是视频笔记,进正题~~约瑟夫环问题,不知道的同学依然点这里约瑟夫环问题,约瑟夫环问提可以使用数组以及链表这种基础的数据结构来解决,刚开始我觉得循环...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据结构与算法-约瑟夫问题
举报原因:
原因补充:

(最多只允许输入30个字)