基本的几种数据结构

1、单链表

typedef struct LNode{
    ElemType data;
    struct LNode *next;
}LNode ,*LinkedList;

2、双链表

typedef struct DNode{
    ElemType data;
    struct DNode *prior ,*next;
}DNode,*DLinkedList;

3、二叉树(二叉链表)

typedef struct BiTNode{
    ElemType data;
    struct BiTNode *lchild,*rchild;
}BiTNode,* BiTree;

4、树(孩子兄弟表示法)

typedef struct CSNode{
    ElemType data;
    struct CSNode *firstchild,*nextsibling;
}CSNode, *CSTree;

5、栈

typedef struct{
    SElemType *base;
    SElemType *top;
    int stackSize;
}SqStack;

typedef struct SNode{ //链表实现
    ElemType data;
    struct SNode *next;
}SNode,*StackPtr;

typedef struct{
    StackPtr *base;
    StackPtr *top;
    int stackSize; //
}LinkedStack;

6、队列

typedef struct{ //循环队列
    SElemType *base;
    int front;
    int rear;
}SqQueue;

typedef struct QNode{
    ElemType data;
    struct QNode *next;
}QNode,*QueuePtr;

typedef struct{
    QueuePtr front;
    QueuePtr rear;
}LinkedQueue;

7、赫夫曼编码

typedef  struct{
    unsigned int weight;
    unsigned int parent,lchild,rchild;  
}HFNode, *HuffmanTree

8、矩阵的三元组表示

#define MAXSIZE 12500
typedef struct {
    int i, j;        //行i,列j
    ElemType e;
}Triple;
typedef struct {
    Tripe  data[MAXSIZE + 1];
    int rowNum, colNum, nozeroNum;   /* mu 为行数 nu 为列数 tu 为非零元个数*/
}TSMatrix;

8、基数排序

typedef struct{
    KeysType keys[MAX_NUM_OF_KEY];  //关键字
    InfoType info;
    int next;
}SLCell;                           //静态链表的结点类型
typedef struct{
    SLCell r[MAX_SPACE];       //静态链表的可利用空间,r[0]为头结点
    int keynum;                //记录当前关键字个数
    int renum;                 //静态链表当前长度
}SLList;                       //静态链表类型
typedef int ArrType[REDIX];    //指针数组类型

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