⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 josef.c

📁 This program can solve Josf problem
💻 C
字号:
      /* Loop Linklist with rear point */#define ELEMENT_TYPE int   /* maybe need to change */#include <stdio.h>#include <stdlib.h>typedef struct {    ELEMENT_TYPE number;    ELEMENT_TYPE code;}type;typedef struct Linklist{        type data;        struct Linklist *next;}Node,*Linklist;Linklist Creat_linklist(FILE *fd){     int i=0;     Linklist rear;     Node *new;      ELEMENT_TYPE c;              int flag = 1;     /* have a flag which is initiate 1 and when input '$' change flag to 0 */     rear = (Linklist)malloc(sizeof(Node));    /* allocate memory to rear point */     rear -> next = rear;              while (flag){                          fscanf(fd,"%d",&c);                       if(c != 0){             i++;                            new = (Node *)malloc(sizeof(Node));           new -> data.code = c;           new -> data.number=i;           new -> next = rear -> next;           rear -> next = new;           rear = new;                          }/* if */        else flag=0;    }/* while */   rear->next = rear -> next ->next;   return rear;}Linklist Delete( ELEMENT_TYPE m,Linklist P){        Linklist r;        type a;        int n;        n=1;                while(n!=m){           n++;           P = P->next;        }        r = P->next;        P -> next = P -> next ->next;                return r;}int main(){    Linklist rear,P,r;    int m,n;    int i;    FILE *fd;    type a;    int code;    fd = fopen("Josef.dat","r");    fscanf(fd,"%d",&m);    fscanf(fd,"%d",&n);    rear = Creat_linklist(fd);    fclose(fd);    i=0;    P = rear;        while(i!=n){      i++;      r = Delete( m ,P);      P = r;      m = r->data.code;      printf("%d\n",r->data.number);      free(r);    }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -