
数据结构
bwqiang
日日新。
展开
-
数据结构十大排序算法讲解:算法原理和LeetCode代码实现(C++,java)
0、排序算法导论 排序的概念 数据结构中的一个重点概念就是内部排序,内部排序是指待排序列完全存放在内存中所进行的排序过程,适合不太大的元素序列。其功能是对一个数据元素集合或序列重新排列成一个按数据元素某个相知有序(递增,递减)的序列。 排序的分类 插入类排序:直接插入排序、希尔排序。 交换类排序:冒泡排序、快速排序。 选择排序:简单选择排序、堆排序。 归并排序。 基数排序。 桶排序。 计数排序。 术语说明 稳定的排序: 排序过程中有前后两个元素相同的点,待排序结束后,这两个相同的点的相对前后位置不原创 2020-07-22 23:29:02 · 560 阅读 · 1 评论 -
数据结构 顺序栈和链栈的操作实现(C)
顺序栈的操作实现 1、顺序栈的头文件定义和函数声明 #ifndef SEQSTACK_H #define SEQSTACK_H //数组模拟栈的存储 #define MAX_SIZE 1024 #define SEQSTACK_TRUE 1 #define SEQSTACK_FALSE 0 typedef struct SEQSTACK { void* data[MAX_SIZE]; i...原创 2020-03-23 17:06:38 · 518 阅读 · 0 评论 -
用循环单链表解决约瑟夫(Joseph)问题
@用循环单链表解决约瑟夫(Joseph)问题 用循环单链表解决约瑟夫(Joseph)问题 问题描述 据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所...原创 2020-03-14 21:29:13 · 1171 阅读 · 0 评论 -
数据结构 队列(C)
1、队列的头文件和函数声明 #ifndef SEQQUEUE_H #define SEQQUEUE_H #define MAX_SIZE 1024 // 顺序队列结构体 typedef struct SEQQUEUE { void* data[MAX_SIZE]; int size; }SeqQueue; // 初始化 SeqQueue* Init_SeqQueue(); // 入队 ...原创 2020-03-23 17:08:28 · 338 阅读 · 0 评论 -
数据结构之栈的括号匹配问题
问题描述 任意给定一个字符串,字符串中包含除了空格、换行符之外的任意字符。检测字符串中的各类括号是否配对,即“(”与“)”、“[”与“]”、“{”与“}”是否匹配。若匹配输出对应的匹配个数。 输入描述 一行字符串。 输出描述 如果字符串中的括号匹配,则输出数字 1,并且在下一行输出{}、[]、()相对应的匹配个数,否则输出数字 0。 示例 输入: &()dgn*[{%}12] 输出: 1 ...原创 2020-03-17 15:31:32 · 428 阅读 · 0 评论 -
数据结构之动态数组相关函数实现
程序描述 上传一下最近写的动态数组相关的api函数。 代码实现 头文件 一系列相关的对 动态数组 结构体操作的函数 1、动态增长内存 策略 typedef struct DYNAMICARRAY { int * pAddr; // 存放数据的地址 int size; // 当前有多少个元素 int capacity; // 容量 当前最大能够容纳多少个元素 }Dynamic_Array;...原创 2020-03-16 23:15:36 · 549 阅读 · 0 评论 -
单链表相关程序实现编写
程序描述 今天对数据结构之单链表部分进行全面的总结 写了一些链表的基本操作程序 程序实现 单链表的头文件 1、链表单一结点结构体定义 由于未指定数据类型 所以使用void*类型,为空类型 可以通过用户定义的类型进行强制类型转换 typedef struct LINKNODE { void* data; // 无类型指针 指向任何类型的数据 struct LINKNODE *next; }Li...原创 2020-03-16 22:59:42 · 139 阅读 · 0 评论