
C语言数据结构与算法
文章平均质量分 72
C语言数据结构与算法
会掉发的程序员
打工人
展开
-
排序算法②——选择排序&&堆排序
排序算法②——选择排序&&堆排序选择排序基本思想直接选择排序参考代码直接选择排序的特性总结堆排序 选择排序 基本思想 选择排序的思想非常的简单,就是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完 。 直接选择排序 在元素集合a[i]–a[n-1]中选择关键码最大(小)的数据元素 若它不是这组元素中的最后一个(第一个)元素,则将它与这组元素中的最后一个(第一个)元素交换 在剩余的a[i]–a[n-2](a[i+1]–a[n-原创 2022-02-07 20:13:20 · 581 阅读 · 21 评论 -
排序算法①——插入排序&&希尔排序
排序算法①——插入排序&&希尔排序直接插入排序基本思想参考代码直接插入排序特性总结希尔排序基本思想参考代码 直接插入排序 基本思想 对于单趟排序:把待排序的值插入到已经排好序的序列中。待排序的值逐一与序列中的值比较,直到找到自己的位置。 全趟排序:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。 举一个单趟排序的例子 2 4 8 9 10 假设我们需要将5插入到上面的升序序列中: 1、首先5与10进行比较,原创 2022-01-27 20:28:06 · 2674 阅读 · 29 评论 -
C语言--二叉树
二叉树树的概念及结构树的概念树的相关概念树的表示二叉树的概念及结构二叉树的顺序结构及实现 树的概念及结构 树的概念 树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一颗倒挂的树,也就是说它是根朝上,而叶朝下的。 有一个特殊的结点,称为根结点,根节点是没有前驱结点的 除根节点外,其余结点被分成N(N>0)个互不相交的集合,其中每一个集合又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继。 因此,树是递归原创 2021-12-08 18:50:13 · 7052 阅读 · 36 评论 -
C语言--栈和队列
栈和队列栈栈的概念及结构栈的实现(数组实现)队列队列的概念及结构队列的实现(链表实现) 栈 栈的概念及结构 栈 一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈 栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈: 栈的删除操作叫做出栈。出数据也在栈顶。 栈的实现(数组实现) 栈的实现一般可以使用数组或者链表实现,相对而言数组原创 2021-11-20 17:10:54 · 660 阅读 · 22 评论 -
C语言链表
C语言链表链表的概念及结构概念结构链表的分类链表的实现双向链表的实现总结:链表和顺序表的区别 链表的概念及结构 概念 链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。 结构 代码 struct Slist { int* a; struct Slist* next; }; 逻辑结构: 物理结构: 链表的分类 链表的实现 双向链表的实现 总结:链表和顺序表的区别 ...原创 2021-11-07 19:43:39 · 15773 阅读 · 23 评论 -
C语言顺序表
C语言顺序表概念及结构静态顺序表动态顺序表接口实现(动态)顺序表的优缺点优点缺点 概念及结构 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。 在数组上完成数据的增删查改。 顺序表一般可以分为: 静态顺序表:使用定长数组存储元素。 动态顺序表:使用动态开辟的数组存储。 静态顺序表 代码实现 #define N 10 //这表示顺序表最多存储的数据 typedef int Datatype; typedef struct SeqList { D原创 2021-10-31 19:33:12 · 1880 阅读 · 14 评论