大类分别为:
线性表,栈,队列,树,二叉树,图
线性表:
顺序存储结构的定义
typedef struct
{
ElemType data[maxsize]; //存放顺序表中的元素
int length; //存放顺序表的长度
}SqList; //顺序表的类型定义
链式存储结构的定义
typedef struct LNode //定义单链表的节点类型
{
ElemType data; //存放元素值
struct LNode *next; //指向后继节点
}LinkList;
栈:
栈的顺序存储结构
typedef struct
{
ElemType data[maxsize];
int top; //栈顶指针
}SqStack; //定义顺序栈类型
栈的链式存储结构
typedef struct Linknode
{
ElemType data; //数据域
struct Linknode *next; //指针域
}Lisyack; //定义链栈类型
队列:
队列的顺序存储结构
typedef struct
{
ElemType data[maxsize]; //存放队中元素
int front,near; //队头和队尾指针
}SqQueue; //定义顺序栈类型
队列的链式存储
typedef struct
{
ElemType data;
struct qnode *next;
}QNode; //链队数据节点类型定义
typedef struct
{
QNode *front;
QNode *rear;
}LiQueue; //链队类型定义
树:
双亲存储结构
typedef struct
{
ElemType data; //存放节点的值
int parent; //存放双亲的位置
}PTree[maxsize];
孩子链存储结构
typedef struct node
{
ElemType data; //节点的值
struct node *sons[maxsons]; //指向孩子节点
}TSonNode;
孩子兄弟链式存储结构
typedef struct tnode
{
ElemType data; //节点的值
struct tnode *hp; // 指向兄弟
struct tnode *vp; //指向孩子节点
}TSBNode;
二叉树:
顺序存储结构
定义为:typedef ElemType SqBTree[maxsize];
链式存储结构
typedef struct node
{
ElemType data; //数据元素
struct node *lchild; //指向左孩子节点
struct node *rchild; //指向右孩子节点
}BTNode;