有M个人围一圈玩报数,凡报到N的出退出,输出每次退出的人的编号。
#include
"stdio.h"
struct
game
{
int
ID
game
*pNext
}
void
main()
{
int
i,m=17,n=3
game
*pPrev,*pNode,*pTop
printf("Input
M
N:"册陆)
scanf("%d
%d",&m,&n)
if(n>m||n<1)
return
pTop=new
game
pTop->ID=1
pPrev=pTop
for(i=2i<=mi++)
{
pNode=new
game
pNode->腊激ID=i
pPrev->pNext=pNode
pPrev=pNode
}
pNode->pNext=pTop
pPrev=pNode
pNode=pTop
i=0
while(pNode->pNext!=pNode)
{
i++
if(i%n==0)
{
printf("%d
",pNode->ID)
pPrev->pNext=pNode->pNext
delete
pNode
pNode=pPrev->pNext
i=0
}
else
{
pPrev=pNode
pNode=pNode->pNext
}
}
delete
pNode
}
#include<stdio.h>#include<malloc.h>
typedef
struct
stackNode{
int
data
struct
stackNode
*
next
}LinkNode,*
LinkList
//初始化带头节点的单链表
void
InitList(LinkList
*
L)
{
*L
=
(LinkList)malloc(sizeof(LinkNode))
(*L)->next
=
NULL
}
//单链表中插入数值
void
InsertList(LinkList
L)
{
LinkNode
*
Node
LinkNode
*
p
=
L
LinkNode
*pre
Node
=
(LinkNode*)malloc(sizeof(LinkNode))
Node->樱氏next
=
NULL
printf("\n请输入您要插入的数据:")
scanf("%d",&Node->data)
while(
p
!=
NULL
&&
p->data
<=
Node->data)
{
pre
=
p
p
=
p->next
}
Node->next
=
p
pre->next
=
Node
printf("\n插入成功!")
}
//删除单链表元素
void
DelList(LinkList
L)
{
LinkNode
*
p
=
L
LinkNode
*
pre
int
value
printf("\n请输入您要删除的数据:")
scanf("%d",&value)
while(p
!=
NULL
&&
p->data
!=
value)
{
pre
=
p
p
=
p->next
}
if(p
==
NULL)
printf("绝册Did
not
find
%d!\n",value)
else
{
pre->next
=
p->next
free(p)
printf("\n删除成功!")
}
}
//打印单链表
void
Print(LinkList
L)
{
LinkNode
*p
=
L->next
while(p
!=
NULL)
{
printf("%-4d",p->data)
p
=
p->next
}
printf("\n")
}
//菜单
void
menu(LinkList
L)
{
char
ch
do{
system("cls")
printf("----------------菜单---------------\n")
printf("
1.插入一个节点\n")
printf("
2.删除一个节点\n")
printf("
3.打印单链表\n")
printf("
4.推出程序\n\n")
printf("请输入您要进行的 *** 作:")
ch
=
getch()
if(ch
>='1'
&&
ch<'5')
{
printf("%c\脊宏散n",ch)
getch()
switch(ch)
{
case
'1':
InsertList(L)
break
case
'2':
DelList(L)
break
case
'3':
Print(L)
break
case
'4':
return
}
getch()
}
}while(ch
!=
'4')
}
void
main()
{
LinkList
L
InitList(&L)
menu(L)
}
if(i==0)pf=head=pb//如果i=0即或核输入的为第一个元素,则把它设置为表头
else pf->next=pb//否则芹团弯,用上一个元素的next指针指向它,即入链表的 *** 作
pb->next=NULL//把这个元素的next指针赋值为NULL
pf=pb//把当前元素指针付给下次循嫌闷环用的指针变量
不明白的,就再追问吧!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)