zoukankan      html  css  js  c++  java
  • 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);
    }
  • 相关阅读:
    python实现简单的百度翻译
    有趣的if循环
    用python代码模拟登录网站
    解决kali中的中文乱码问题
    基于linux下的NIST数字测试(下)——测试过程
    基于linux下的NIST数字测试(上)——安装过程
    2019-2020-20199135 《网络攻防实践》第3周作业
    2019-2020-20199135 《网络攻防实践》第2周作业
    2019-2020-20199135《网络攻防实践》第1周作业
    20199135网络攻防与实践作业
  • 原文地址:https://www.cnblogs.com/ilovetheworld/p/10162740.html
Copyright © 2011-2022 走看看