首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
算法与数据结构【C语言】
忆想不到的晖
创建于2021-05-11
订阅专栏
教你用C语言实现顺序表、链表、栈、队列、二叉树等。以及各种数据结构的基本概念。
等 15 人订阅
共19篇文章
创建于2021-05-11
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
【查找算法】哈希查找
何为哈希查找? 先看定义: 哈希查找通过给定的哈希函数构造哈希表(也叫散列表),然后通过计算存储地址进行元素查找。
【排序算法】- 折半插入排序
其中寻找插入位置的过程我们是与每一个元素进行比较,相当于顺序查找,我们知道顺序查找的效率是比较低的,那么有没有办法能够提高查找插入位置的效率呢?
【排序算法】直接插入排序
“我正在参加「掘金·启航计划」” 基本思想 直接插入排序的原理非常简单,即:每步将一个待排序的对象,按其关键码大小,插入到前面已经排好序的序列上,直到对象全部插入为止。 典型的直接插入排序案例就是理扑
树与二叉树详解
“我正在参加「掘金·启航计划」” 森林的定义 前面的文章中提到了树的定义,我们说树是一个递归的定义,树由若干子树构成,其中的每一棵子树又由若干子树构成。 那么森林是什么呢? 树的存储结构 下面介绍树的
C语言实现二叉树
“我正在参加「掘金·启航计划」” 引言 二叉树的遍历算法 先序遍历算法 先序遍历的实现方式在前面已经说过了,比如下面的一棵二叉树: 我们需要先访问根结点A,然后以先序遍历的方式遍历左子树,左子树同样是
数据结构 — 树和二叉树
二叉树(Binary Tree)是 n (n >= 0)个结点的有限集,它或者是空集 (n= 0),或者由一个根结点 及 两棵互不相交 的分别称作这个根的 左子树 和 右子树 的二叉树组成。
如何使用C语言实现循环队列
将队列空间设想成一个循环的表,即分配给队列的 m 个存储单元可以循环使用,当 rear 为 MAXSIZE 时,若队列的开始端空着,又可从头使用空着的空间。 front 为 MAXSIZE 时也是一样
C语言实现顺序队列
顺序队列和顺序栈相类似,在队列的顺序存储结构中,除了用一组地址连续的存储单元依次存放从队列头到队列尾的元素之外,尚需附设两个 “指针” front 和 rear 分别指示队列头元素及队列尾元素的位置。
C语言实现链栈
链栈是栈的链式存储结构,链栈可以用单链表的头插法实现。 会单链表,链栈、链队,树,二叉树等都很好理解。 链栈的常规操作 定义链栈结构体 初始化链栈 链栈判空 因为是链式存储结构,无需链栈判满。
C语言实现顺序栈
C语言实现顺序栈的常规操作:初始化栈、判断栈满、判断栈空、求栈长(栈元素个数)、入栈 压栈、出栈 弹栈。
数据结构 - 栈和队列
栈和队列是两种常用的、重要的数据结构 栈和队列是限定插入和删除只能在表的 “端点” 进行的 线性表 栈和队列是线性表的子集(是插入和删除位置受限的线性表)
顺序表与链表的比较
顺序表查询快,增删相对慢,预先分配、随机存取。 链表增删快,查询相对慢,动态分配、顺序存取。 存储密度 = 结点数据本身占用的空间 / 结点占用的空间总量
C语言实现单链表
C语言实现头插法创建单链表、尾插法创建单链表、单链表判空、求单链表长度、遍历单链表、插入结点、删除结点、按址查值、按值查址、去除重复的值。
单链表头尾插法详解
头插法:结点一直往 单链表头部插入,先进入的数据结点链接在末尾端(刚好逆序),有点像栈的特性,先进后出。 尾插法:结点一直往 单链表尾部插入,先进入的数据结点还是在前驱。
数据结构 - 链表
链表结构可以充分利用计算机内存空间,实现灵活的内存动 顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充(插入、删除)时又需要进行数据的搬迁,所以使用起来并不是很灵活。
C语言实现线性表的顺序表示
C语言线性表的常规操作:初始化线性表、销毁线性表、 清空线性表、判断线性表是否为空、求线性表的长度、线性表插入、删除元素、找到线性表指定位置的元素值、找到线性表指定元素值的位置。
数据结构 - 线性表概念详解
数据结构之顺序表 —— 将元素顺序地存放在一块连续的存储区里,元素间的顺序关系由它们的存储顺序自然表示。
程序的灵魂 — 算法与算法分析
算法(Algorithm) 是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务。
初识数据结构
数据结构是计算机存储、组织数据的方式。 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。