• c++链表


    • 什么是链表

    链表是一种常见的重要的数据结构。它是动态进行储存分配的一种结构

    • 和数组的区别

    数组存放数据时,必须事先定义数组长度,如果不知道具体长度,只能定义一个足够大的长度

    链表则没有这种缺点,他能根据需要开辟内存单元

    • 结点

    每个结点包括两个数据,用户实际的数据+下一个结点的地址

    • 最后一个元素

    该元素不在指向其他元素,它的地址部分放NULL;

    • 静态链表

    这个例子比较简单,所有结点都是在程序中定义的,不是临时开辟的,也不能用完后释放,这种链表成为静态连表

    #include<stdio.h>
    struct MyStruct
    {
        int id;
        float score;
        MyStruct *next;
    };
    int main()
    {
        struct MyStruct a, b, c, *head, *p;
        a.id = 111; a.score = 1.1;
        b.id = 222; b.score = 2.2;
        c.id = 333; c.score = 3.3;
        head = &a;
        a.next = &b;
        b.next = &c;
        c.next = NULL;
        p = head;
        while (p!=NULL)
        {
            printf("%d,%lf
    ", p->id, p->score);
            p = p->next;
        }
    }

    • 建立动态连表

    所谓建立动态链表是指在程序运行当中从未到有地建立一个链表,即是一个个地开辟结点和输入各结点的数据,并建立起前后相连的关系

    #include<iostream>//最简单的链表 
    using namespace std;
    struct stu
    {
        int id;
        double score;
        stu *next;
    };
    int n=0;
    stu * creat()//创建链表,输入数据返回头结点 
    {
        stu *p1,*p2,*head;
        p1=p2=new stu();//很重要这块,考试之前一定打在打两遍 ,一个个建立结点,开辟空间
        head=NULL;
        cin>>p1->id>>p1->score;
        while(p1->id!=0)//五角星 
        {
            n++;
            if(n==1) head=p1;
            else p2->next=p1;
            p2=p1;
            p1=new stu();
            cin>>p1->id>>p1->score;
        }
            p2->next=NULL;
            return head;
    }
    
    void print(stu *head)//遍历链表 
    {
        stu *p;
        p=head;
        while(p!=NULL)//是while不是if 
        {
            cout<<p->id<<p->score<<endl;
            p=p->next;
        }
    }
    
    int main()
    {
        stu *p;
        p=creat();
        print(p);
    }
  • 相关阅读:
    区分/不区分大小写的比较,查找字符串在另一字符串中的位置,字符串开头是否包括另一字符串 hasPrefix
    获取文件名以及后缀
    监听Documents文件夹内文件发生改变
    根据路径获取文件大小
    获取视频第一帧的方法
    判断图片格式
    iTunes文件共享
    iOS 10 隐私权限设置
    uCos 学习:0-有关概念
    ALSA 有关文档
  • 原文地址:https://www.cnblogs.com/ilovetheworld/p/10162740.html
Copyright © 2020-2023  润新知