数据结构与算法——单链表

关于单链表的一个简单的题目

以下程序输入一个整数n,再输入n个整数,以此按数据大小建立一个链表,再输出该链表所有节点的数据,然后删除整个链表。如输入5 33 88 55 77 11,则输出11 33 55 77 88。

#include <stdio.h>
#include <stdlib.h>
typedef struct LNode
{
    int data;
    struct LNode *next;
}LinkList;
LinkList * CreateList(LinkList *L, int n);
void DispList(LinkList *L);
void DestoryList(LinkList *L);
int main()
{
    int n;
    LinkList *head;
    scanf("%d",&n);
    head = CreateList(head,n);
    DispList(head);
    DestoryList(head);//在CreatList函数中申请的内存,就可以通过DestoryList函数释放
    //可以通过DispList及DestoryList这两个函数验证
    return 0;
}
LinkList * CreateList(LinkList *L, int n)
{
    LinkList *s;
    int i;
    L = (LinkList *)malloc(sizeof(LinkList));
    L->next = NULL;
    for (i = 0; i < n; i++)
    {
        s = (LinkList *)malloc(sizeof(LinkList));
        scanf("%d",&s->data);
        s->next = L->next;
        L->next = s;
    }
    return L;
}
void DispList(LinkList *L)
{
    LinkList *p = L->next;
    while(p != NULL)
    {
        printf("%d ", p->data);
        p = p->next;
    }
    printf("\n");
}
void DestoryList(LinkList *L)
{
    LinkList *pre = L,*p = L->next;
    while(p != NULL)
    {
        free(pre);
        pre = p;
        p = p->next;
    }
    free(pre);
}

在这里插入图片描述

posted @   笑着的程序员  阅读(31)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示