简单的C语言链表(含输入、输出功能)

来源:互联网 发布:java http下载文件 编辑:程序博客网 时间:2024/05/17 02:10

#include <stdio.h>#include <stdlib.h>#include <malloc.h>  //malloc头文件struct Student   //定义结构体{    int num;        struct Student *next;   //指向下一个数据节点的指针};int n;struct Student *creat()    //定义建立链表的函数{    n=0;    struct Student *p1,*p2,*head;    p1=p2=(struct Student *)malloc(sizeof(struct Student));   //malloc分配动态内存    scanf("%d",&p1->num);                                     //sizeof判断数据类型或者表达式长度    head=NULL;   //分配头指针为空    while(p1->num!=0)    {        ++n;        if(n==1)            head=p1;        else            p2->next=p1;        p2=p1;        p1=(struct Student *)malloc(sizeof(struct Student));   //开辟新的动态内存        scanf("%d",&p1->num);    };    p2->next=NULL;    return (head);   //返回链表头地址};void print(struct Student *head)   //输出函数{    struct Student *p;    printf("数字链表内容为:\n");    p=head;    if(head!=NULL)    {        do        {            printf("%d\n",p->num);            p=p->next;        }while(p!=NULL);    }}int main()   //主函数{    struct Student *pt;    pt=creat();   //调用建立链表的函数    print(pt);   //调用输出链表的函数    return 0;};

头文件部分


定义结构体部分



输出函数部分



主函数部分





阅读全文
0 0