线性表物理存储结构
- 顺序存储实现:利用数组的连续存储空间顺序存放线性表的各元素
#define MAXLEN 100
template <typename T>
struct List {
T Datas[MAXLEN];
int last; //最后一个元素的下标
}
struct List<int> *pList;
- 链式存储结构:不要求逻辑上相邻的两个元素物理存储上也相邻,通过“链”建立起数据元素之间的逻辑关系
template <typename T>
using LNode = ListNode<T>;
template <typename T>
struct ListNode {
T data;
LNode<T> *pNode;
};
LNode<T> *pListNode;
广义表的定义和结构体:
定义:广义表是线性表的推广,里面的数据成员可以是数据元素也可以是另一个广义表
template <typename>
using GLNode = GenListNode<T>;
template <typename T>
struct GenListNode {
int Tag; //表示结点是单元素还是广义表
union {
T data;
GLNode<T> *pSLNode;
}URegion;
GLNode<T> *pNextNode;
};