//数据结构 尾插法
#include<stdio.h>
#include<stdlib.h>
//typedef Etype int;
//单向循环链表
typedef struct LNode{
int data; //存放元素值
struct LNode *next; //指向后继结点
}LNode,*Linklist; //单链表结点类型
//尾插法
Linklist Creat_List(){
Linklist head = (Linklist )malloc(sizeof(LNode));
Linklist node = NULL; //定义工作指针
Linklist end = NULL; //定义尾指针
head->next = NULL; //初始化头结点的下一个结点为NULL
end = head; //链表为空时,尾指针指向头结点
int count = 0;
int datain = 0; //定义输入的data
scanf("%d",&count);
for(int i=0;i<count;i++){
node = (LNode*)malloc(sizeof(LNode)); //为新结点开辟内存
scanf("%d",&datain);
node->data = datain; //新结点数据域赋值
end->next = node; //新结点赋值给end的下一个
end = node; //重新定义尾结点
}
end->next = NULL;
return head;
}
//输出链表
void output(Linklist head){
//if(head->next == head)
// return;
Linklist a = head->next;
while(a!=NULL){
printf("%d",a->data);
printf(" ");
a=a->next;
}
}
int main(void){
int n=0;
Linklist head = Creat_List();
output(head);
}