![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LV3数据结构
文章平均质量分 73
枯木遇南风丨
鲜衣怒马少年时,不负韶华行且知
展开
-
C语言基础算法题
9、判断一个给定的字符串是否是有效的括号序列(左右括号数量是否一致);10、将一个给定的字符串中的所有空格替换为“%20”;8、判断一个给定的字符串是否是有效的ip地址;1、计算并输出1到100之间所有偶数之和;4、判定一个给定的字符串是否是回文字符串;6、找出一个对给定数组中的所有重复元素;7、将一个给定的整数数组按升序排序;2、招数数组中的最大值和最小值;5、计算一个给定数字的阶乘;3、将给定的字符串反转;原创 2023-08-06 16:39:22 · 613 阅读 · 2 评论 -
day 5 Makefile
1)工程管理器,顾名思义,是指管理较多的文件2)Make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入Makefile文件的内容来执行大量的编译工作3)Make将只编译改动的代码文件,而不用完全编译。原创 2023-03-14 23:53:07 · 40 阅读 · 0 评论 -
day11 树及实现(下)
1、先访问根节点A,让A入队,A出队判断A是否有左子树,访问左子树B入队,A是否有右子树,有则访问右子树E入队;G出队,判断G是否有左子树,有,访问左子树H入队,是否有右子树,有,访问右子树K入队;2、B出队,判断B是否有左子树,有则访问左子树,没有,则判断是否有右子树,有则访问右子树C入队;E出队,判断E是否有左子树,无,判断是否有右子树,有,访问右子树F入队;判断F是否有左子树,有,访问左子树G入队,是否有右子树,无;3、C出队,判断C是否有左子树,有,访问左子树D入队,是否有右子树,无;原创 2023-03-29 19:15:51 · 38 阅读 · 0 评论 -
day10 树及实现(上)
一个节点系列k1,k2,......,ki,ki+1,......,kj,并满足ki是ki+1的父节点,就成为一条从k1到kj的路径;二叉树是n(n≥0)个节点的有限集合,或是空集(n = 0),或是由一个根节点以及两颗互不相交的、分别称为左子树和右子树的二叉树组成。有n各节点的完全二叉树可以用有n+1个元素的数组进行顺序存储,节点号和数组下标一一对应,下标为零的元素不用。, 度数不为零的节点称为分支节点,除根节点外的分支节点称为内部节点。路径中前面的节点是后面节点的祖先,后面节点的层数定义为一。原创 2023-03-27 15:56:17 · 44 阅读 · 0 评论 -
day9 队列实现及其应用(下)
当小时指示器放入第12个球时,原来的11个球按照他们被放入时的相反顺序加入球队列的队尾,然后第12个球也回到队尾。球钟是一个利用球的移动来记录时间的简单装置,它有三个可以容纳若干个球的指示器:分钟指示器,五分钟指示器,小时指示器;直接删除要出队的结点然后更新front的指向,但存在特殊情况当链式队列中只存在一个结点时,还需要考虑。若分钟指示器有2个球,五分钟指示器有6个球,小时指示器有5个球,则时间为:5:32。,当遇到队列只有一个结点时,删除头结点更新front的指向释放内存。算法思路:出队有两种方法,原创 2023-03-23 17:23:49 · 60 阅读 · 0 评论 -
day8 队列实现及其应用(上)
(3)当N = 6,rear = 5时,队列虽然可以继续存数,但是rear++就会超出队列范围,(2)出队时需要返回队头值,另外front移动一个队内的值不会被覆盖可以找一个中间变量接收队头;在队列操作过程中,为了提高效率,以调整指针代替队列元素的移动,并将数组作为循环队列的操作空间。(1)出队时,front的移动与rear相同也是需要((front+1) % N)对N取余;(2)rear是指示队尾元素的下一个位置,即存放新值的位置,rear的位置。为区别空队和满队,满队元素个数比数组元素个数少一个。原创 2023-03-22 18:03:11 · 57 阅读 · 0 评论 -
day7 栈实现及其应用
(1)在创建的时候会出现s->data空间创建失败返回NULL提示整个栈空间创建失败,其实这种情况下s空间是有可能创建成功的,所以要加上判断语句s->data!算法思路:检查栈是否为满栈就是比较s->top栈顶元素是否等于最后一个元素即s->maxlen-1;(2)多次插入:p->next = s->next;(2)释放空间时为防止数据丢失,与建立时过程相反,即先释放后申请的空间。(1)指针变量p指向待删除的变量 p = s->next;(1)首次插入:s->next = p;原创 2023-03-21 23:32:56 · 59 阅读 · 0 评论 -
day6 单链表的操作实现
功能:设两单链表A、B按data值(设为整型)递增有序,将表A和B合并成一表A,且表A也按data值递增有序。功能:设结点data域为整型,求链表中相邻两结点data值之和为最大的第一结点的指针。(2)若p->data ≤q->data则p结点进入结果表,否则q结点进入结果表。(2)求p->data+q->data为最大的那一组值,返回其相应的指针p即可。算法思路:依次取原链表中各结点,将其作为新链表首结点插入H结点之后,如下图。(1)设指针p、q分别指向表A和B中的结点,功能:将单链表H倒置。原创 2023-03-21 01:01:49 · 55 阅读 · 0 评论 -
day 5线性表之链表应用(下)
算法思路:同插入法,先调用函数GetLinklist(h, i-1),找到结点ai的前驱,然后将结点ai删除之。功能:即实现DeleteLinklist(h, i), 算法对应的链表结构如图所示。功能:将单链表中所有结点存储空间释放, 要保证链表末处理的部分不断开。原创 2023-03-21 00:48:32 · 45 阅读 · 0 评论 -
day 4线性表之链表(上)
由于顺序表的插入删除操作需要移动大量的元素,影响了运行效率,因此引入了线性表的链式存储——单链表。单链表通过一组任意的存储单元来存储线性表中的数据元素,不需要使用连续的存储单元,因此它不要求在逻辑上相邻的两个元素在物理位置上也相邻。原创 2023-03-19 22:40:34 · 58 阅读 · 0 评论 -
day2 线性表之顺序表(上)
线性表是包含若干数据元素的一个线性序列记为:L=(a(0),......a(i-1),a(i),a(i+1)......a(n-1))L为表名,(0) ,(i-1)......为下标,a(i) ,(0原创 2023-03-15 20:55:57 · 89 阅读 · 0 评论