C++_链表

来源:互联网 发布:人工智能产业链分层图 编辑:程序博客网 时间:2024/05/20 16:14
//***** 静态链表 *****//***** 结构体链表 *****void test1(){    struct book  // 定义一个book结构体    {        int num;        float price;        struct book *next;    };    struct book x,y,z;    struct book *p = NULL;    struct book *head = NULL;    // 结构体x    x.num = 100;    x.price = 13.0f;    // 结构体y    y.num = 101;    y.price = 14.0f;    // 结构体z    z.num = 102;    z.price = 15.0f;    // 头节点设置为x的地址,尾节点分别设置为y,z,最后z的尾节点设置为NULL,最后尾节点为空,这样才能让编译器知道已经到达链表结尾    head = &x;    x.next = &y;    y.next = &z;    z.next = NULL;    p = head;    // 循环输出结构体链表    while(p != NULL)    {        std::cout << "num:" << p->num << std::endl;        std::cout << "price:" << p->price << std::endl;        p = p->next;    }    /*    结构体链表比较浅显易懂,理解了结构体链表之后,再学习类的链表就不那么抽象和晦涩了    */}//***** 类链表 *****void test2(){    class book  // 定义一个book类    {    public:        int num;        float price;        book *next;    };    book x,y,z;    book *p = NULL;    book *head = NULL;    // 结构体x    x.num = 100;    x.price = 13.0f;    // 结构体y    y.num = 101;    y.price = 14.0f;    // 结构体z    z.num = 102;    z.price = 15.0f;    // 头节点设置为x的地址,尾节点分别设置为y,z,最后z的尾节点设置为NULL,最后尾节点为空,这样才能让编译器知道已经到达链表结尾    head = &x;    x.next = &y;    y.next = &z;    z.next = NULL;    p = head;    // 循环输出类链表    while(p != NULL)    {        std::cout << "num:" << p->num << std::endl;        std::cout << "price:" << p->price << std::endl;        p = p->next;    }    /*    先看看结构体链表,再看看类类链表,就比较容易理解了    像这样的链表实际上是静态链表,链表中所有的节点的数据在编译时就已经确定好了,不会在运行时再进行动态地分配空间,比如创建、添加和删除等操作    这样的链表叫"静态链表"    */}










0 0
原创粉丝点击