模 块 划 分
(1)带头结点的单循环链表抽象数据类型sclinlist,其中包括的基本操作函数有:初始化操作函数,插入一个结点操作函数,删除一个几结点操作函数,取一个结点数据操作函数和判表是否为非空操作函数。
(2) void sclldeleteafter(sclnode *p),其功能是删除带头结点的单循环链表中指针p所指结点的下一个结点。
(3) void jesephring(sclnode *head,int m),其功能是对带头结点的单循环链表head,
以m为初始报数上限值实现问题要求。
(4) void main(),主函数,其功能是给出测试数据值,建立测试数据值的带头结点单循环链表,调用jesering()函数实现问题要求。
#include
#include
#define null 0
//数据类型datatype定义如下:
typedef struct
{
int number;
int cipher;
}datatype;
//带头结点单循环链表结点的结构体定义如下:
typedef struct node
{
datatype data;
struct node *next;
}sclnode;
//初始化
void scllinitiate(sclnode * *head)
{ if((*head=(sclnode*)malloc(sizeof(sclnode)))==null)exit(1);
(*head)->next=*head;
}
//插入一个结点
int scllinsert(sclnode *head,int i,datatype x)
{
sclnode *p,*q;
int j;
p=head->next;j=1;
while(p!=head&&j
}
if(j!=i-1&&i!=1)
{ printf("input parameter error!");
return 0;
}
if((q=(sclnode*)malloc(sizeof(sclnode)))==null)exit(1);
q->data=x;
q->next=p->next;
p->next=q;
return 1;
}
//删除一个结点
int sclldelete(sclnode *head,int i,datatype *x)
{
sclnode *p,*q;
int j;
p=head;j=0;
while(p->next!=head&&j
if(j!=i-1)
{printf("delete parameter error!");
return 0;
}
q=p->next;
p->next=p->next->next;
*x=q->data;
free(q);
return 1;
}
//取一个结点数据元素值
int scllget(sclnode *head,int i,datatype *x)
{
sclnode *p;
int j;
p=head;j=0;
&n
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔