数据结构定义

线性表
/*线性表的顺序存储类型*/
typedef struct
{   data[MaxSize];                 //存放顺序表中元素
    int length;                    //存放顺序表中长度
}SqList;                           //顺序表的类型定义
/*线性表的链式存储结构——单链表*/
typedef struct Lnode               //定义单链表节点类型
{   Elemtype data;                 //存放元素值
    struct Lnode *next;            //指向后继节点
}LinkList;
/*线性表的链式存储结构——双链表*/
typedef struct Lnode                //定义双链表节点类型
{   Elemtype data;                  //存放元素值
    struct Dnode *prior;            //指向前驱节点
    struct Dnode *next;             //指向后继节点
}LinkList;
栈和队列
/*栈的顺序存储结构*/
typedef struct
{   ElemType data[MaxSize];
    int top;                       //栈顶指针
}SqStack;                          //定义顺序栈类型
/*栈的链式存储结构*/
typedef struct linknode
{   ElemType data;                 //数据域
    struct linknode *next;         //指针域
}LiStack;                          //定义链栈类型
/*队列的顺序存储结构*/
typedef struct
{   ElemType data[MaxSize];         //存放队中元素
    int front,rear;                 //队头和队尾指针
}SqQueue;                           //定义顺序队类型
/*队列的链式存储结构*/
/*链队中数据节点的类型QNode定义*/
typedef struct qnode
{   ElemType data;
    struct qnode *next;
}QNode;                             //链队数据节点类型定义
/*链队节点的类型LiQueue*/
typedef struct
{   ElemType *front;
    ElemType *rear;
}LiQueue;                           //链队类型定义
/*非紧缩格式的顺序串*/
typedef struct
{   char data[MaxSize];          //存放串字符
    int length;                  //存放串长
}SqString;                       //顺序串类型
/*串的链式存储结构*/
typedef struct snode
{   char data;
    struct snode *next;
}LiString;
树和二叉树
/*双亲存储结构*/
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;
/*邻接矩阵的数据类型定义*/
#define    MAXV <最大顶点个数>
typedef struct
{   int no;                    //顶点编号
    InfoType info;             //顶点其他信息
}VertexType;                   //顶点类型

typedef struct
{   int edges[MAXV][MAXV];     //邻接矩阵的边数组
    int n,e;                   //顶点数、边数
    VertexType vexs[MAXV];     //存放顶点信息
}MGraph;                       //完整的图邻接矩阵类型
/*图的邻接表存储类型*/
typedef struct ANode
{   int adjvex;                //该边的终点编号
    struct ANode *nextarc;     //指向下一条边的指针
    InfoType info;             //该边的相关信息
}ArcNode;                      //边节点类型

typedef struct Vnode         
{   Vertex data;               //顶点信息
    ArcNode *firstarc;         //指向第一条边
}VNode;                        //邻接表头节点类型










你可能感兴趣的:(数据结构笔记)