教材问题讨论: 教材P28对于线性表的单链表 请注意:Typedef不可能创造 存储结构描述: 任何新的数据类型,而仅仅是 Typedef struct Lnode 在原有的数据类型中命名一个 ElemType data; 新名字,其目的是使你的程序 struct Lnode *next; 更易阅读和移植。 Lnode,*LinkList; Q1:第一行的Lnode与最后一行的Lnode是不是一回事? A1:不是。前者Lnode是结构名,后者Lnode是对整个 struct类型的一种“缩写”,是一种“新定义名”,它只是 对现有类型名的补充,而不是取代
1 Typedef struct Lnode { ElemType data; struct Lnode *next; }Lnode, *LinkList; 教材P28对于线性表的单链表 存储结构描述: 教材问题讨论: Q1:第一行的Lnode 与最后一行的Lnode是不是一回事? A1:不是。前者Lnode是结构名,后者Lnode是对整个 struct类型的一种“缩写”,是一种“新定义名”,它只是 对现有类型名的补充,而不是取代。 请注意:Typedef不可能创造 任何新的数据类型,而仅仅是 在原有的数据类型中命名一个 新名字,其目的是使你的程序 更易阅读和移植
Typedef struct student char name; int age; }student,*pointer; Q2: 那为何两处要同名(Lnode和node)?太不严谨了吧? A2:同名是为了表述起来方便。例如,若结构名为student, 其新定义名缩写也最好写成student,因为描述的对象相同, 方便阅读和理解。 Q3:结构体中间的那个struct Lnode是何意? A3:在“缩写”Lnodei还没出现之前,只能用原始的 struct Lnode来进行变量说明。此处说明了指针分量的数据 类型是struct Lnode
2 Typedef struct Lnode { ElemType data; struct Lnode *next; }Lnode, *LinkList; Q2: 那为何两处要同名(Lnode和Lnode)?太不严谨了吧? A2:同名是为了表述起来方便。例如,若结构名为student, 其新定义名缩写也最好写成student,因为描述的对象相同, 方便阅读和理解。 Q3:结构体中间的那个struct Lnode是何意? A3:在“缩写” Lnode还没出现之前,只能用原始的 struct Lnode来进行变量说明。此处说明了指针分量的数据 类型是struct Lnode。 Typedef struct student { char name; int age; }student,*pointer;
第2章线性表 2.1 线性表的逻辑结构 2.2线性表的顺序表示和实现 2.3线性表的链式表示和实现 2.4应用举例 3
3 第2章 线性表 2.1 线性表的逻辑结构 2.2 线性表的顺序表示和实现 2.3 线性表的链式表示和实现 2.4 应用举例
2.3线性表的链式表示和实现 2.3.1链表的表示 2.3.2 链表的实现 2.3.3链表的运算效率分析
4 2.3 线性表的链式表示和实现 2.3.1 链表的表示 2.3.2 链表的实现 2.3.3 链表的运算效率分析
2.3,2链表的实现 (1)单链表的建立和输出 (2)单链表的修改 (3)单链表的插入 (4)单链表的删除 5
5 2.3.2 链表的实现 (1) 单链表的建立和输出 (2) 单链表的修改 (3) 单链表的插入 (4) 单链表的删除