链表

链表

typedef

 #include<stdio.h> 
 ​
 typedef int sunkuan;//为int多取一个名字 ,sunkuan等价于int 
 typedef struct Student
 {
     int sid;
     char name[100];
     char sex;
 }* PST;//PST代表struct Student*,等价于之前的整体 
 int main (void)
 {
 //  int i =10;//等价于sunkuan i=10
 //  sunkuan j=20;
 //  
 //  printf("%d\n",j);
 //ST st;//使用typedef来等价
  struct Student st;
  PST ps=&st;
  ps->sid=99;
  printf("%d\n",ps->sid);
 ​
 ​
     return 0; 
 }
 #include<stdio.h> 
 ​
 ​
 typedef struct Student
 {
     int sid;
     char name[100];
     char sex;
 }* PSTU,STU;//STU 代表了struct Student,  PST代表struct Student*,等价于之前的整体 
 int main (void)
 {
     STU st;
     PSTU ps=&st;
     ps->sid=99;
     printf("%d\n",ps->sid);
 ​
     return 0; 
 }

链表的定义

  1. 离散存储【链表】

定义:不连续存储,通过指针相连

  1. n个节点离散分配

  1. 彼此通过指针相连

  2. 每个节点只有一个前驱节点,也只有一个后续节点

  3. 首节点没有前驱节点,尾结点没有后续节点

专业术语:

  • 首节点:第一个有效节点

  • 尾结点:最后一个有效节点

  • 头结点:

    1. 没有存放有效数据

    1. 没有存放个数

    2. 方便对链表操作

    3. 第一个有效节点之前的那个节点

  • 头指针:指向头结点的指针变量

  • 尾指针:指向尾结点的指针变量

分类

算法:

链表的优缺点:

posted @ 2022-04-20 11:59  Unclesundada  阅读(40)  评论(0)    收藏  举报