数据结构编程问题求解

来源:百度知道 编辑:UC知道 时间:2024/05/29 14:12:22
题目是:设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,每个人持有一个正整数密码。开始时任选一个正整数做为报数上限m,从第一个人开始顺时针方向自1起顺序报数,报到m是停止报数,报m的人出列,将他的密码作为新的m值,从他的下一个人开始重新从1报数。如此下去,直到所有人全部出列为止。令n最大值取30。要求设计一个程序模拟此过程,求出出列编号序列。
我的编程为:
#include <iostream.h>
#include <stdlib.h>
#include <malloc.h>
#include <time.h>
#include <stdio.h>

//常量定义
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define True 1
#define False 0

//函数返回值类型定义
typedef int Status;

//表节点数据类型定义

typedef int ElemType;
typedef struct LNode{ // 结点类型定义
ElemType data; //数据域
int num;
struct LNode *next; //指针域
}LNode, *LinkList;
LinkList head, p;

void CreateList_L(LinkList &L,int n)
/*建立有n个结点的线性单链表的算法*/
{
L = (LinkList)malloc(sizeof(LNode));
L->next = L;

void CreateList_L(LinkList &L,int n)
/*建立有n个结点的线性单链表的算法*/
{
L = (LinkList)malloc(sizeof(LNode));
L->next = L;
printf("请按顺序输入每个人的密码:\n");
for(int i=1;i<=n;i++)
{ p = (LinkList)malloc(sizeof(LNode));
scanf("%d",&L->data); ///////这里不断修改头节点的值,p中没有数据
L->num=i;
//``````````````````````````````````````、、、、、、、、
p->next = L->next;
L->next = p;
}
}
//你个猪头!
//下面没看了。