
数据结构
FelikZhang
消息回复可能不及时。可联系:felikzhang@qq.com
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
纯C语言编程实现数独解法
编程解决数独问题,网上查了很多资料,大多数的C语言程序虽然可以运行出结果,但是往往定义了很多全局数组变量来存储待解决数独中每一个空的状态信息(如:通过扫描整个数独表,记录待填的空的位置;记录每个待填空所在行和列已经有哪些值,接下来可以填哪些值等信息),这导致代码中全局变量很多,全局变量在整个程序中到处调用,在没有足够注释的情况下整个程序可读性不高,代码结构不是很清楚。 ...原创 2020-02-18 00:10:58 · 6967 阅读 · 1 评论 -
利用后缀表达式构建一颗表达式树——C语言实现
构建一颗表达式的算法如下:从第一个符号开始,一次读取一个后缀表达式中的符号。如果符号是操作数,那么建立一个单节点树,并将一个指向它的指针入栈(注意这里栈中存的是指针)。如果符号是操作符那么 就从栈弹出两颗树的指针,以当前读到的操作符为根节点构建一颗树。最后再将该树的根节点入栈。循环此过程,知道读完并处理完所有符号(后缀表达式中的符号)。原创 2017-12-30 23:39:23 · 4343 阅读 · 2 评论 -
大整数的四则运算(C语言实现)(2)——大整数的加法和减法运算
对于加法运算,存在以下四种情况: 1. + -:传入相减函数,然后返回结果即可 2. - +:交换两个数,传入相减函数,返回结果即可 3. ++:直接传入加法函数,返回结果即可 4. - -: 取反,执行相加函数 结果的符号保存为负号 总结一下,在输入输出处理函数之外,为了完成大整数的加法,我们需要编写的函数:①大整数的分析判断函数(不进行真正的加法运算,只做判断分析及结果符号位的处理);②大整数数据域相加函数(进行加法运算的函数);③大整数数据域相减函数(进行减法运算的函数);④两数绝对原创 2018-07-02 16:21:31 · 10128 阅读 · 1 评论 -
创建双向链表的算法——C语言实现
创建双向链表的算法——C语言实现双向链表也叫双链表,是链表的一种,它的每个节点包含两个指针,分别指向直接后继和直接前驱(头节点的前驱指空,尾节点的后继指空)。所以,从双向链表中的任意一个非前驱非后继节点开始,都能很方便地访问它的前驱和后继节点。实际上如果熟练掌握了单向链表的基本操作,双向链表的创建只是每次新建好一个节点后挂链的时候多操作一个指针而已。如果你单向链表的创建还不熟悉,可以看这篇文章中的...原创 2018-04-04 18:07:23 · 5692 阅读 · 3 评论 -
数据结构与算法——线性表之顺序表(JAVA语言实现 )
线性表是由n个数据元素组成的优先序列。线性表中每个元素都必须有相同的结构,线性表是线性结构中最常用而又最简单的一种数据结构。线性表由存储结构是否连续可分为顺序表和链表。顺序表指线性表中每个元素按顺序依次存储,线性表中逻辑上相邻的两个元素其在内存中的地址也是相邻的。而链表指的是每个数据元素存储不一定连续的一种数据结构,即链式存储。从内存中的分布来说,下一个元素的地址在与其相邻的上一个节点中存储,即链表每个节点的值由两部分组成,一部分是数据域,另一部分存一个引用(即指针,或者说是一个地址),指向该节点的下一个原创 2018-04-05 10:59:31 · 725 阅读 · 0 评论 -
《算法导论》读书笔记(01)——ch02 算法基础【插入排序、归并排序】
《算法导论》第二章主要讨论了两个算法问题:插入排序和归并排序,在介绍两个算法的同时,对两个算法从运行效率上做了分析。最后对分治算法进行了做了简要介绍。下面对这两种算法从头开始分析,并用C语言和JAVA语言进行实现。目录1.插入排序1.1 算法思路1.2 算法实现1.2.1 伪代码描述1.2.2 C语言实现1.3 算法分析与评价2.归并排序2.1 算法思路...原创 2018-10-18 21:42:59 · 457 阅读 · 0 评论