数据结构模板

数据结构模板

c 复制代码
#define MAXSIZE 100   // 顺序存储最大容量
#define MAXV 100      // 图最大顶点数
#define INF 0x3fffffff

1. 顺序表

静态分配顺序表

c 复制代码
typedef struct {
    int data[MAXSIZE];
    int length;    // 当前有效元素个数
} SqList;

动态分配顺序表(408优先推荐)

c 复制代码
typedef struct {
    int *data;
    int maxsize;   // 最大容量
    int length;    // 当前长度
} SeqList;

2. 单链表

c 复制代码
typedef struct LNode {
    int data;
    struct LNode *next;
} LNode, *LinkList;

3. 双向链表

c 复制代码
typedef struct DNode {
    int data;
    struct DNode *prior;
    struct DNode *next;
} DNode, *DLinkList;

4. 循环单链表

结构体和普通单链表完全一致,仅操作逻辑不同(尾结点next指向头结点)

c 复制代码
typedef struct LNode {
    int data;
    struct LNode *next;
} LNode, *LinkList;

5. 循环双向链表

c 复制代码
typedef struct DNode {
    int data;
    struct DNode *prior;
    struct DNode *next;
} DNode, *DLinkList;

6. 栈

顺序栈

c 复制代码
typedef struct {
    int data[MAXSIZE];
    int top;   // 栈顶指针
} SqStack;

链栈

c 复制代码
typedef struct SNode {
    int data;
    struct SNode *next;
} SNode, *LinkStack;

7. 队列

循环顺序队列

c 复制代码
typedef struct {
    int data[MAXSIZE];
    int front;   // 队头
    int rear;    // 队尾
} SqQueue;

链队列

c 复制代码
typedef struct QNode {
    int data;
    struct QNode *next;
} QNode;

typedef struct {
    QNode *front;
    QNode *rear;
} LinkQueue;

8. 顺序串

c 复制代码
typedef struct {
    char ch[MAXSIZE];
    int length;
} SString;

9. 普通二叉树(二叉链表)

c 复制代码
typedef struct BiTNode {
    int data;
    struct BiTNode *lchild, *rchild;
} BiTNode, *BiTree;

10. 线索二叉树

c 复制代码
typedef struct ThreadNode {
    int data;
    struct ThreadNode *lchild, *rchild;
    int ltag;   // 0:左孩子,1:前驱线索
    int rtag;   // 0:右孩子,1:后继线索
} ThreadNode, *ThreadTree;

11. 图

邻接矩阵

c 复制代码
typedef struct {
    int Edge[MAXV][MAXV];
    int n, e;  // n顶点数,e边数
} MGraph;

邻接表(考研最高频)

c 复制代码
// 边结点
typedef struct EdgeNode {
    int adjvex;
    struct EdgeNode *nextedge;
    // 带权图增加 int weight;
} EdgeNode;

// 顶点结点
typedef struct VNode {
    int data;
    EdgeNode *firstedge;
} VNode, AdjList[MAXV];

// 图整体结构
typedef struct {
    AdjList adjList;
    int n, e;
} ALGraph;

相关推荐
m0_547486662 天前
《数据结构教程》全套 PPT课件2026
数据结构
tryxr3 天前
矩阵的几种基础变换
java·数据结构·算法·矩阵
mmmmath_33 天前
LeetCode.028.找出字符串中第一个匹配项的
数据结构·算法·leetcode
All for pursuit.3 天前
【栈-4】739.每日温度
数据结构·c++·算法·leetcode
All for pursuit.3 天前
【栈-5】84.柱状图中最大的矩形
数据结构·c++·算法·leetcode
渡我白衣3 天前
HttpRequest与HttpResponse的实现
服务器·数据结构·c++·人工智能·tcp/ip·机器学习·caffe
晴天的雨.9923 天前
【C++算法】和为s的两个数
开发语言·数据结构·c++·算法
淡海水3 天前
13-04-面试-源码级深度追问链
数据结构·unity·面试·c#·游戏引擎·源码·il2cpp
Logic1013 天前
C语言/数据结构位运算题解:异或XOR找出时尚聚会中的“独特颜色“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
2401_839080543 天前
C++常见八股
数据结构·c++·算法