跳至主要內容
数据结构 - 二叉树

数据结构 - 二叉树

树的概念和结构

相关概念


zedo2022年8月11日大约 8 分钟数据结构二叉树C语言
数据结构 - 队列

数据结构 - 队列

队列

数据结构

#include <stdio.h>  
#include <stdlib.h>  
#include <stdbool.h>  
#include <assert.h>  

typedef int QDataType;

// 由于队列是 FIFO(先进先出),采用数组会移动数据,故采用单链表(带头结点)
typedef struct QueueNode {
    QDataType data;
    struct QueueNode *next;
} QueueNode;

// 队列需要控制队头和队尾两个指针,单独用一个结构体存放
typedef struct Queue {
    QueueNode *head; // 队头
    QueueNode *tail; // 队尾
} Queue;

zedo2022年8月10日大约 2 分钟数据结构线性表队列C语言
数据结构 - 栈

数据结构 - 栈

数据结构

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <assert.h>

// 栈可以用数组或链表来存取数据,数组更优,因此这里用数组实现
typedef int SDataType;
typedef struct Stack {
    SDataType *arr;
    int top; // 栈顶
    int capacity; // 容量
} Stack;

zedo2022年8月10日大约 1 分钟数据结构线性表C语言
数据结构 - 双向链表

数据结构 - 双向链表

这里我们主要介绍的是链表中最复杂的结构:循环双向链表(Circular Doubly Linked List)

数据结构:

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

typedef int DataType;
typedef struct CDList {
    DataType data;
    struct CDList *prev; // 指向上一结点
    struct CDList *next; // 指向下一结点
} Node;

zedo2022年8月9日大约 3 分钟数据结构线性表链表C语言
数据结构 - 单链表

数据结构 - 单链表

链表的表示

顺序表的问题及思考

问题:

  1. 中间、头部的插入删除,时间复杂度为
  2. 增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗。
  3. 增容一般是呈 2 倍的增长,势必会有一定的空间浪费。例如当前容量为 100,满了以后增容到 200,我们再继续插入了 5 个数据,后面没有数据插入了,那么就浪费了 95 个数据空间。

zedo2022年8月8日大约 8 分钟数据结构线性表链表C语言
数据结构 - 顺序表

数据结构 - 顺序表

建议

在阅读本篇文章之前,建议先学会 C 语言的语法,包括但不限于:

  • 指针
  • 内存管理
  • 结构体

zedo2022年8月7日大约 8 分钟数据结构线性表顺序表C语言
命题公式真值表

命题公式真值表

题目

已知命题公式 ,用 Java 或 C/C++ 语言编写程序构造该命题公式的真值表,真值表输出样式自己设计(变量值可以不手工输入)。


zedo2022年3月21日大约 5 分钟离散数学真值表C语言javakotlin
C 语言基础

C 语言基础

数据类型

  • 基本类型
    • 整型 int
    • 字符型 char
    • 实型(浮点型)
      • 单精度实型 float
      • 双精度实型 double
  • 构造类型
    • 数组类型[]
    • 结构体类型 struct
    • 聚合类型 union(考研不考)
    • 枚举类型 enum(考研不考)
  • 指针类型*
  • 空类型(无值类)void

zedo2022年3月13日大约 9 分钟编程语言C语言
2023-9-14 更新
重启 search-pro,css 样式调整