zoukankan      html  css  js  c++  java
  • C++ 单向链表

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 //目的:创建一个链表,存储学生的信息(姓名和学号)
     6 //所以其节点数据为:姓名和学号
     7 //用结构体数据类型表示数据
     8 typedef struct node
     9 {
    10     char name[10];
    11     int number;
    12     struct node *next;  //指针域
    13 }Student; //为便于书写,将struct node数据类型定义为Student数据类型
    14 
    15 //创建链表,访问列表时需要头节点的地址,所以需要一个返回值,返回头节点的地址,====这个“*”,好好理解一下
    16 Student * creatLB(int n)
    17 {
    18     Student *head = new Student;//创建头节点,头节点一般不含数据
    19     Student *pre = head;  //创建指针变量pre,用于指存储“上一个”节点地址
    20     for (int i = 0; i < n; i++)
    21     {
    22         cout << "请输入第" << i + 1 << "个学生的姓名和学号" << endl;
    23         Student *p = new Student; //动态申请Student数据类型的内存
    24         cin >> p-> name;
    25         cin >> p-> number;
    26 
    27         pre->next = p; //将上一个节点指针 指向 当前的节点地址
    28         pre = p;       //将当前节点的地址 给 pre指针,用于准备指向下一个节点地址
    29         p->next = NULL;
    30     }
    31     return head;
    32 }
    33 
    34 //创建display函数,用于访问链表并显示
    35 void display(Student *head, int n) //要访问链表,需要知道头节点的地址,然后依次访问,所以参数为头节点
    36 {
    37     Student *p = head->next;  //head头节点无数据,将第一个节点的地址给p
    38     for (int i = 0; i < n; i++)
    39     {
    40         cout << "" << i + 1 << "个学生的姓名是" << p->name << '	' <<
    41             "" << i + 1 << "个学生的学号是" << p->number << endl;
    42         p = p->next; //第一遍循环之后,将下一个节点的地址给p,输出下一个节点的数据
    43     }
    44 }
    45 
    46 int main()
    47 {
    48     int n = 3;    //存放三个学生的信息
    49     Student * addr = creatLB(n);   //创建链表,并返回头节点地址,用变量名addr来存储
    50     display(addr, n);    //传入参数:头节点地址,用于访问链表并显示
    51     int t;
    52     cin >> t;
    53     return 0;
    54 }

  • 相关阅读:
    java安全——BASE64
    Spring Aop 梳理
    Spring Aop中,获取被代理类的工具
    关于eclipse运行TestNG出现: CreateProcess error=206, ÎļþÃû»ò)չÃû的解决办法
    java内存设置
    用python开发调试器——起始篇
    5分钟破解全峰快递
    重拾黑客
    ThreadPoolExecutor的运转机制
    20190627_解决ADB的device offline问题的两种方法
  • 原文地址:https://www.cnblogs.com/pgzhanglin/p/13226965.html
Copyright © 2011-2022 走看看