线性表总结
-
顺序表和链表的定义
-
链表的结构解析
顺序表类型定义
#define MAXSIZE 100 //最大长度
typedef struct {
ElemType *elem; //指向数据元素的基地址
int length; //线性表的当前长度
}SqList;
例
#define MAXSIZE 10000 //图书表可能达到的最大长度
typedef struct //图书信息定义
{
char no[20]; //图书ISBN
char name[50]; //图书名字
float price; //图书价格
}Book;
typedef struct
{
Book *elem; //存储空间的基地址 (数组名做首地址)
int length; //图书表中当前图书个数
}SqList; //图书表的顺序存储结构类型为SqList
单链表的存储结构定义
typedef struct LNode{
ElemType data; //数据域
struct LNode *next; //指针域
}LNode,*LinkList;
// *LinkList为Lnode类型的指针,LNode *p <->LinkList p
例
#define MAXSIZE 10000 //图书表可能达到的最大长度
typedef struct //图书信息定义
{
char no[20]; //图书ISBN
char name[50]; //图书名字
float price; //图书价格
}Book;
typedef struct LNode{
Book data; //图书数据
struct LNode *next;//指针域
}LNode,*LinkList; //图书表的链表存储结构类型为LinkList
链表的结构解析
单链表实际上完成两个操作
1)构造一个结构LNode
struct LNode{
ElemType data; //数据域
struct LNode *next; //指针域
}
// *LinkList为Lnode类型的指针,LNode *p <->LinkList p
2)typedef为这个新的结构起了一个名字,叫LNode。
typedef struct LNode LNode;
因此,LNode(后)实际上相当于struct LNode(前),我们可以使用LNode(后) varName来定义变量。
struct LNode
{
ElemType data; //数据域
struct LNode *next;//数据域
};
// *LinkList为Lnode类型的指针,LNode *p <->LinkList p
typedef struct LNode LNode;
typedef struct LNode* LinkList;
网友评论