文章目录
p22 线性表的链式存储结构:
线性表的链式存储结构
双链表,两个指针域。一个指针域存储前驱元素地址,一个指针存取后继元素地址。
链表第一个元素为首元节点,在前面添加一个节点,它叫头节点。头指针存放的时头节点的地址。
是否有头结点的单链表两种不表示方式:
有头结点时,头指针存储的是头节点的地址。
是否有头结点的两种不同表示方式的空表:
注意:^等价于NULL
查找线性表的顺序存储结构中的元素的时间复杂度为O(1)。
p23 线性表的链式存储结构:
知识回忆:
单链表的定义与表示:
注意:结构体中next的类型为strct Lnode指针类型,与定义的结构体类型struct Lnode 加上*后一致。表明指针指向struct Lnode类型的结构体。
typedef 为Lnode类型,使用时有两种不同的方式:
Lnode a; // 定义为普通类型
a.data = 2;
a.next = 0x12213;
Lnode* p // 定义为指针类型
p->data = 2;
p->next = 0x12213;
typedef 为*LinkList类型,表明它为指针类型。定义时:
LinkList L; // 相当于Lnode* p
L->data = xx;
l->next = xx;
**注意:**定义链表的头指针一般为:LinkList L ;定义节点指针为:LNode *p 而不用LinList P
p23 线性表的链式存储结构的表示:
#include<stdio.h>
#include <stdlib.h>
typedef int ElementType;
typedef int status;
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define MaxSize 100
typedef struct Lnode{
ElementType data;
struct Londe* next
}Lnode,*LinkList