链表
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;
}
链表的定义
-
离散存储【链表】
定义:不连续存储,通过指针相连
-
n个节点离散分配
-
彼此通过指针相连
-
每个节点只有一个前驱节点,也只有一个后续节点
-
首节点没有前驱节点,尾结点没有后续节点
专业术语:
-
首节点:第一个有效节点
-
尾结点:最后一个有效节点
-
头结点:
-
没有存放有效数据
-
没有存放个数
-
方便对链表操作
-
第一个有效节点之前的那个节点
-
-
头指针:指向头结点的指针变量
-
尾指针:指向尾结点的指针变量
分类
算法: