#include <stdio.h>
#include <stdlib.h>
int n;
typedef struct node
{
int num;
int data;
struct node * next;
}node;
node * init(void);
void dis(node * );
void display(node * );
int main(void)
{
node * head;
scanf("%d", &n);
head = init();
display(head);
dis(head);
return 0;
}
node * init(void)
{
int i;
node * pre, * current, * head;
head = (node *)malloc(sizeof(node));
head->next = head;
pre = head;
for (i = 1; i <= n; ++i)
{
current = (node *)malloc(sizeof(node));
pre->next = current;
current->num = i;
current->data = 10 - i;
current->next = head;//新节点的指针指向头结点
pre = current;
}
return head;
}
void display(node * head)
{
int i;
node * current;
current = head->next;
for (i = 1; i < n; ++i)
{
printf("%d ", current->num);
current = current->next;
}
printf("%d\n", current->num);
current = head->next;
for (i = 1; i < n; ++i)
{
printf("%d ", current->data);
current = current->next;
}
printf("%d\n", current->data);
}
void dis(node * head)
{
int i;
node * current, * t;
current = head;
for (i = 1; i < n; ++i)
{
t = current->next;
free(current);
current = t->next;
}
free(current);
free(head);
}
数据结构--循环链表
最新推荐文章于 2024-06-11 10:00:00 发布