데이터 구조 - 조세 프 링 (순환 링크)
1831 단어 데이터 구조
샘플: 입력: 1031 / / 는 각각 총수 이 고 열 거 된 인원 이 도착 한 숫자 이 며 시작 한 사람의 번호 입 니 다.출력: 3, 6, 9, 2, 7, 1, 8, 5, 104 / / 열 거 된 선착순 으로 열 거 된 사람의 번호 입 니 다.
#include
#include
#define ERROR 0
#define OK 1
typedef int ElemType; /* */
typedef struct LNode /* */
{
ElemType data;
struct LNode *next;
} LNode,*LinkList;
LinkList Creat(int t)
{
int n;
LinkList p1,p2,head;
p1=(LinkList)malloc(sizeof(LNode));
p2=(LinkList)malloc(sizeof(LNode));
head = NULL;
n = 1;
while(n<=t)
{
p1->data = n;
if(n==1)
head = p1;
else
p2->next = p1;
p2 = p1;
if(n!=t)
p1 = (LinkList)malloc(sizeof(LNode));
n++;
}
p2->next = head;
return head;
}
LinkList Start(LinkList L,int k)
{
int i;
i=1;
while(i!=k)
{
L=L->next;
i++;
}
return L;
}
LinkList Delete(int n,int m,LinkList L)
{
int i,j,k;
LinkList p;
p=L;
k=0;
while(n>1)
{
j=0;
for(i=1+k; i<=n; i++)
{
if((i+1)%m==0)
{
printf("%d ",p->next->data);
p->next=p->next->next;
i++;
j++;
}
p=p->next;
k=i%m;
}
n=n-j;
}
printf("%d
",p->data);
return p;
}
int main()
{
int m,n,k;
scanf("%d%d%d",&n,&m,&k);
LinkList L,cur;
L=Creat(n);
cur=Start(L,k);
Delete(n,m,cur);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.