#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
int data;
struct Node *next;
}Node;
int Init_Node(Node **h)//初始化
{ if((*h=(Node *)malloc(sizeof(Node)))==NULL) return 0;
(*h)->next=(*h);
return 1;
}
void Creat_list(Node *h)//尾插法创建循环链表
{ Node *r,*p;
r=h;
r->next=h;
int a[100];
int n,i;
printf("请输入循环链表结点的个数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{ printf("请输入第%d个结点的值",i+1);
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{ p=(Node *)malloc(sizeof(Node));
if(p==NULL) return;
p->data=a[i];
p->next=h;
r->next=p;
r=p;
}
}
void print(Node *h)//输出
{ Node *p=h->next;
while(p!=h)
{ printf("%2d",p->data);
p=p->next;
}
}
int main()
{ Node *head;
Init_Node(&head);
Creat_list(head);
print(head);
return 0;
}
创建一个循环链表
最新推荐文章于 2023-09-03 17:57:43 发布