据结构课程设计_joseph 环
/*
Name: joseph 环
Author:wujilin
Description:课程设计joseph 环 就是一个循环链表的运用
Date: 11-07-06 20:11
Copyright:wujilin
*/
#include
#include
typedef struct Node
{
int data;
int password;
struct Node *next;
}Node, *LinkList;
void CreatLinkList(LinkList *L, int n)
{
Node *p, *q;
int i;
(*L) = (LinkList)malloc(sizeof(Node));
if ((*L) == NULL)
{
printf("memory allocation failed, goodbye");
exit(1);
}
p = (*L);
printf("请输入第1 个元素的密码:");
scanf("%d",&(p->password));
p->data = 1;
for (i = 2; i <= n; i++)
{
q = (LinkList)malloc(sizeof(Node));
if (q == NULL)
{
printf("memory allocation failed, goodbye");
exit(1);
}
printf("\n 请输入第%d 个元素的密码:",i);
scanf("%d",&(q->password));
q->data = i;
p->next = q;
p = q;
}
p->next = (*L);
}
void Output(LinkList *L, int m, int n)
{
Node *p, *q;
int i = 1;
p = (*L);
printf("输出出对序列:");
while (n)
{
while (i != m)
{
q = p;
p = p->next;
i++;
}
printf("%-3d",p->data);
m = p->password;
q->next = p->next;
free(p);
p = q->next;
i = 1;
n--;
}
///
//下面是别人用for 循环的 其实和我用while 循环差不多
//但别人在处理删除一个节点的方法以前没看到过 值得学习
// int i,j;
// Node *p,*q;
//
// p = (*L);
// for (j = 1; j <= n; j++)
// {
//
// for(i = 1; inext);
// m = p->password;
// printf("%d\n",p->data);
// p->data = p->next->data;
// p->password = p->next->password;
// q = p->next;
// p->next = p->next->next;
// free(q);
// }
//
printf("\n");
}
int main(void)
{
LinkList L;
int n, m;
printf("请输入人数:");
scanf("%d", &n);
getchar();
CreatLinkList(&L, n);
printf("请输入第一个报号数:");
scanf("%d",&m);
Output(&L, m, n);
system("pause");
return 0;
}
C 语言课程设计]计算器 代码
#include /*DOS 接口函数*/
#include /