算法实验

  • Z1_355921
    了解作者
  • 184.7KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 1
    下载次数
  • 2022-05-31 10:15
    上传日期
算法实验算法实验算法实验算法实验算法实验算法实验算法实验算法实验
算法实验.rar
  • 算法实验
  • 约瑟夫斯问题
  • Cpp2.exe
    180KB
  • Cpp1.exe
    180KB
  • Cpp2.cpp
    1.8KB
  • Cpp1.cpp
    845B
  • Horspool问题
  • Horspool.cpp
    1.2KB
  • Horspool.exe
    168KB
  • 算法实验.rar
    92.4KB
内容介绍
#include<stdio.h> #include<malloc.h> typedef struct LNode{ int num; struct LNode *next; }LNode,*LinkList; int InitList(LinkList &L) { int i; int n; int temp; LinkList p,q; L=(LinkList)malloc(sizeof(LNode)); L->next=NULL; printf("输入人数:\n"); scanf("%d",&n); printf("依次输入每个人的编号:\n"); for(i=0;i<n;i++) { p=(LinkList)malloc(sizeof(LNode)); scanf("%d",&p->num); p->next=L->next; L->next=p; } for(i=0;i<n;i++) { p=L; p=p->next; q=p->next; while(q!=NULL) { if(p->num>q->num) { temp=p->num; p->num=q->num; q->num=temp; } p=p->next; q=p->next; } } return n; } int J(LinkList &L) { int c=1; int k; int j; LinkList q,p,s; k=InitList(L); while(k>=1) { p=L; p=p->next; q=L; if(k==1) { printf("\n"); printf("最后幸存者的编号为:\n"); printf("%d",p->num); return p->num; } if(k%2==0) { printf("\n"); printf("第"); printf("%d",c); printf("次删除的结点编号为:\n"); for(j=1;j<=k;j++) { if(j%2==0) { printf("%d ",p->num); q->next=p->next; free(p); p=q->next; } else{ q=q->next; p=p->next; } } } if(k%2!=0) { printf("\n"); printf("第"); printf("%d",c); printf("次删除的结点编号为:\n"); printf("%d ",p->num); for(j=1;j<=k;j++) { if(j%2==0) { printf("%d\n",p->num); q->next=p->next; free(p); p=q->next; } else{ q=q->next; p=p->next; } } q=L->next; L->next=q->next; free(q); } k=k/2; c=c+1; } } void main() { LinkList l; J(l); printf("\n"); }
评论