当前位置:   article > 正文

数据结构->线性结构->顺序存储->静态链表

数据结构->线性结构->顺序存储->静态链表

一、思路

        链表由节点组成。

1、分析需求,画图:

2、定义学生结构体,包含姓名、年龄、性别和下一个学生的指针:

  1. #include <stdio.h>
  2. #define N 20
  3. // 定义性别枚举类型,固定值,不是男就是女
  4. typedef enum{
  5. Female,
  6. Male
  7. }gender_type;
  8. // 定义学生结构体,包含姓名、年龄、性别和下一个学生的指针
  9. typedef struct stu{
  10. char name[N];
  11. unsigned char age; // 范围0~255足够用
  12. gender_type gender;
  13. struct stu *next;
  14. }student;

3、初始化学生:

  1. // 初始化学生s1
  2. student s1 = {"1-zhangsan", 20, Male, NULL};
  3. // 初始化学生s2
  4. student s2 = {"2-lisi", 21, Female, NULL};
  5. // 初始化学生s3,使用结构体初始化语法
  6. student s3 = {
  7. .name = "3-wangwu",
  8. .age = 22,
  9. .gender = Female,
  10. .next = NULL // 代表最后一个节点
  11. };

4、构建学生链表:

  1. s1.next = &s2;
  2. s2.next = &s3;

5、封装打印所有学生信息函数:

  1. void print_stu(student *p)
  2. {
  3. while(p != NULL){
  4. printf("name:%s, age:%d, gender:%d\n", p->name, p->age, p->gender);
  5. p = p->next;
  6. }
  7. }

6、打印所有学生信息:

  1. 要找到链表的第一个节点,通过首节点找下一个节点,
  2. 最后一个节点的特征是 next 为空,这样就遍历完成整个链表。
  3. print_stu(&s1); // 传入首节点的地址

二、源代码

  1. #include <stdio.h>
  2. #define N 20
  3. // 定义性别枚举类型
  4. typedef enum{
  5. Female,
  6. Male
  7. }gender_type;
  8. // 定义学生结构体,包含姓名、年龄、性别和下一个学生的指针
  9. typedef struct stu{
  10. char name[N];
  11. unsigned char age;
  12. gender_type gender;
  13. struct stu *next;
  14. }student;
  15. /**
  16. * 打印学生信息
  17. * @param p 学生链表的头指针
  18. */
  19. void print_stu(student *p)
  20. {
  21. while(p != NULL){
  22. printf("name:%s, age:%d, gender:%d\n", p->name, p->age, p->gender);
  23. p = p->next;
  24. }
  25. }
  26. int main(void)
  27. {
  28. // 初始化学生s1
  29. student s1 = {"1-zhangsan", 20, Male, NULL};
  30. // 初始化学生s2
  31. student s2 = {"2-lisi", 21, Female, NULL};
  32. // 初始化学生s3,使用结构体初始化语法
  33. student s3 = {
  34. .name = "3-wangwu",
  35. .age = 22,
  36. .gender = Female,
  37. .next = NULL
  38. };
  39. // 构建学生链表
  40. s1.next = &s2;
  41. s2.next = &s3;
  42. // 打印所有学生信息
  43. print_stu(&s1);
  44. return 0;
  45. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/868967
推荐阅读
相关标签
  

闽ICP备14008679号