Skip to content
c
#include<stdio.h>
#include<malloc.h>
typedef struct node
{
    int data;
    struct node *next;
}NODE;

NODE *create()                        /*此函数采用后插入方式建立单链表,并返回一个指向链表表头的指针*/
{
    NODE *head,*q,*p;                 /*定义指针变量*/
    char ch;
    int a;
    head=(NODE*)malloc(sizeof(NODE));  /*申请新的存储空间,建立表头结点*/
    q=head;
    ch='*';
    printf("\nInput the list :");
    while(ch!='?')                        /*"ch"为是否建立新结点的标志,若"ch"为"?"则输入结束*/
    {
	      scanf("%d",&a);                  /*输入新元素*/
	      p=(NODE*)malloc(sizeof(NODE));
        p->data=a;
        q->next=p;
        q=p;
        ch=getchar();                     /*读入输入与否的标志*/
    }
    q->next=NULL;
    return(head);                         /*返回表头指针head*/
}

main()
{
    int i;
    NODE *a;
    a=create();
    printf("output the list:");
    a=a->next;
    while(a!=NULL)
    {
	     printf("%d ",a->data);             /*输出链表各元素*/
        a=a->next;
    }
}