📄 shiyan1-1.cpp
字号:
#include<string.h>
#include<malloc.h>
#include<stdio.h>
#include<stdlib.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
typedef int ElemType;
struct LNode
{
int data1,data2;
LNode *next;
};
typedef LNode *LinkList;
Status InitList_CL(LinkList &L)//创建单循环链表
{
L=(LinkList)malloc(sizeof(LNode));
if(!L)
exit(OVERFLOW);
L->next = L;
L->data1 = 1;
L->data2 = 3;
return OK;
}
Status Create_CL(LinkList &L,int i,ElemType e1,ElemType e2)//创建数据
{
LinkList p = L->next,s;
int j = 1;
if(i<=1)
return ERROR;
while(j<i)
{
p = p->next;
j++;
}
s = (LinkList)malloc(sizeof(LNode));
s->data1 = e1;
s->data2 = e2;
s->next = L->next;
L->next = s;
L=s;
return OK;
}
int main()
{
LinkList L;
int n,k,l,a,data1,data2;
int m;
Status i;
printf("please input a number (<=20):\n");
scanf("%d",&a);
i = InitList_CL(L);
printf("please input how many LNODE:");
scanf("%d",&n);
printf("input LNODE information.\n");
for(k = 1;k<=n;k++)
{
scanf("%d%d",&data1,&data2);
i = Create_CL(L,k,data1,data2);
}
LinkList p = L->next;
LinkList s = L;
printf("please input the initial location:");
while(scanf("%d",&m))
{
if(m<=a)
break;
else
{
printf("Error input ,please input again!\n");
continue;
}
}
do
{
for(i=1;i<m;i++)
{
s = p;
p = p->next;
}
n = p->data1;
m = p->data2;
s->next = p->next;
p = s->next;
printf("%2d",n);
}while(p->next!=s->next);
if(p->next==s->next)
printf("%2d\n",p->data1);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -