- 博客(16)
- 收藏
- 关注
原创 栈和队列OJ2
此时结果刚好是队列中有效元素个数,但如果rear大于front,减完之后就是有效元素个数了,再加N后有效长度会超过N,故需要%N。出栈操作相当于非空队列的队尾元素出队,此时需要把非空队列除最后一个元素之外的其余元素入队到空队列,然后出队最后一个队尾元素。出队操作: 当出队的栈不为空是,直接进行出栈操作,如果为空,需要把入队的栈元素全部导入到出队的栈,然后再进行出栈操作。此题可以用两个栈实现,一个栈进行入队操作,另一个栈进行出队操作。此题可以用两个队列去实现一个栈,每次始终保持一个队列为空,
2025-06-06 00:08:35
125
原创 栈和队列OJ
用栈模拟实现队列可以使用两个栈,一个栈模拟入队列,一个栈模拟出队列,入队列时,将元素直接往模拟入队列的栈中存放,出队列时直接弹出模拟出队列栈的栈顶元素,当该栈为空时,将模拟入队列栈中所有元素导入即可,不是每次都需要导入元素。栈是尾部插入和删除,一般使用顺序表实现,设置计数即添加一个字段来记录队列中有效元素的个数,如果队列中有效元素个数等于空间总大小时队列满,如果队列中有效元素个数为0时队列空。两者都可以用数组和链表实现,栈偏向于数组,队列偏向于链表,队列是头部删除尾部插入,一般使用链表实现。
2025-06-05 23:57:03
132
原创 指针的进阶2
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一。个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或。第一种情况为不使用函数指针数组通过switch语句,略显繁多;第二种情况为通过函数指针数组存放的函数地址调用多个函数。意思为一个指针指向一个数组,该数组的所有元素都为函数指针。通过使用回调函数以冒泡排序的方式实现sqort函数。形式:int (*pa[2])();
2024-12-02 18:56:54
330
原创 指针的进阶
指针的主题,我们在初级阶段的《指针》章节已经接触过了,我们知道了指针的概念:1.指针就是个变量,用来存放地址,地址唯一标识一块内存空间。2.指针的大小是固定的4/8个字节(32位平台/64位平台)。3.指针是有类型,指针的类型决定了指针的+-整数的步长,指针解引用操作的时候的权限。4.指针的运算。这里,我们继续探讨指针的高级主题字符指针当2个指针指向同个常量字符串时,指向的是同一片空间;而当两个指针指向储存着相同内容的指针数组时,占据着不同的内存空间。
2024-12-02 16:35:01
576
原创 深度剖析数据在内存中的储存 知识要点
整形中:int,long,short,long long都默认为signed,即可以直接等于char 大部分编译器默认为signed,但不可以等于,取决于编译器浮点型:double,float构造类型(自定义类型):数组类型,结构体类型,枚举类型,联合类型指针类型:int*,char*,float* ,void*空类型:void。
2024-11-28 21:19:01
721
原创 C语言测试小结2
用sizeof计算数组的大小时,不管数组中是否存在数据,sizeof都是根据数组的大小进行计算数组所占的空间大小,而不是根据数组内的数据的个数。同时需要注意的是如果想要知道数组内数据的个数时,用数组空间的大小除一个数据的大小,sizeof(数组名) / sizeof(数组元素)10.在字符串中找到只出现一次的字符,并返回他的位置(从0开始),否则返回-1。12.给出2个有序整型数组A,B,将B合并到A中A--m个,B--n个。在32位大端 低位---高位。格式 {{},{},{},{}}
2024-11-28 16:14:54
241
原创 函数递归的经典题目
汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。n个盘的情况就可以转化为两个(n - 1)个盘的情况 + 一个1个盘的情况。盘子数量 最优步数。在移动的过程中借用一根辅助柱。得到公式pow(2,n);
2024-11-26 11:18:18
339
原创 迭代法,递归(斐波那契数列,n的阶乘)--详解
当一个问题相当复杂,难以用迭代实现时,此时递归实现的简洁性便可以补偿它所带来的运行时开销。1.许多问题是以递归的形式进行解释的,这只是因为它比非递归的形式更为清晰。但是这些问题的迭代实现往往比递归实现效率更高,虽然代码的可读性稍微差些。n的阶乘道理也是如此,直接使用递归容易发生栈溢出,用迭代。首先在了解该数列的各项式规律后,容易想到用递归的方法。个斐波那契数字的时候特别耗费时间。这个函数的时候如果我们要计算第。//用于储存上上次的值。发生栈溢出---不可行。此时就不应用递归的方法。//用于储存上次的值。
2024-11-26 10:43:51
403
原创 C语言小测总结一
1). 一个表达式中凡是可以使用整型的地方,都可以使用char、short int 或者整型位域(这几个基本类型无论是否带符号都可) 的变量,以及枚举类型的对象。2). 如果1)中的变量的原始类型的所有值都可以被int表示,那么原值被转换为int;有数据类型小于int类型大小的,编译器就会隐式的把小于int类型的数据转换为int类型的数据。(负数按补码形式参加按位与运算)加运算的两个数,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。参加运算的两个数只要两个数中的一个为1,结果就为1。
2024-11-25 21:27:59
232
原创 记录刚开始写代码的我
在高考结束后的暑假里,你曾经有过无忧无虑成天玩耍的日子,也在不久就体会到了由自己那高傲的自尊心被狠狠打击后的不甘,但现实就是如此残酷,你必须学会坦荡接受。这对于我来说是不可能的,由此我确实应该深刻认识到失误出现的原因只会是由于个人准备的浅薄。所以在大一刚开始时,我就决定任何事都以学业为先,不要使自己陷入和同学的纠纷,这不是一个值当的交易。嘿嘿,但我目前做的还不错我觉得。朝自己的目标--加入字节--不断努力。(希望每当迷茫时可以过来看看提醒自己,不过我觉得我不用)(这篇文章我想写给至少2、3年后的我)
2024-09-09 15:04:21
168
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人