数据结构模板

数据结构模板

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;

相关推荐
mmmmath_39 小时前
LeetCode.104.二叉树的最大深度
数据结构·leetcode
信奥卷王16 小时前
[GESP202509 六级] 划分字符串(含视频)
数据结构·算法
m0_7520356316 小时前
Redis 数据结构总结
数据结构·数据库·redis
tachibana216 小时前
Go 语言的 Map 是否是并发安全的?
开发语言·数据结构·后端·golang·go·语言
Logic10117 小时前
C语言/数据结构字符串题解:统计“chhc“子串权值总和——一次遍历模式匹配
c语言·数据结构·算法·字符串·时间复杂度·空间复杂度·ascii
我命由我1234518 小时前
LRU 缓存淘汰策略
数据结构·redis·学习·mysql·算法·缓存·学习方法
垆边人似月.18 小时前
华为题:合并区间
数据结构·c++·算法
垆边人似月.18 小时前
华为题:滑动窗口最大值
数据结构·c++·算法
m0_5474866618 小时前
《数据结构 (C语言)》期末试卷及答案(10套)2026版
c语言·开发语言·数据结构
杜 硕19 小时前
归并排序详解
数据结构·算法·排序算法