【数据结构】头插法建立单链表

来源:互联网 发布:linux怎么写c 编辑:程序博客网 时间:2024/06/06 00:33
#include<stdio.h>#include<malloc.h>#include<stdlib.h>struct ListNode{    char data;//数据域     struct ListNode* next;//指针域 };//头插法建立单链表struct ListNode*CreateList(){    char ch;    struct ListNode* head;//头指针     struct ListNode *s;//工作指针     head=NULL;//链表开始为空    ch=getchar();    while(ch!='\n')     {        s=(struct ListNode *)malloc(sizeof(struct ListNode));//生成新节点         s->data=ch;// 将读入的数据放在新结点的数据域中         s->next=head;//生成的第一个结点是链表的最后一个结点         head=s;//头指针指向新插入的结点         ch=getchar();    }    return head; }  int main() {    struct ListNode *q,*p;    q=CreateList();    while(q)    {        printf("%c",q->data);        p=q->next;        free(q);//释放q结点         q=p;     }      printf("\n");      return 0; }