自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

S_tarfish的博客

“从零开始的计算机学习之路,自顾自地记录一路的收获与感悟,若能顺便帮助到你,那是我的荣幸。”

  • 博客(12)
  • 收藏
  • 关注

原创 【考研408】 计算机组成原理 第一章

本文是作者学习考研408计算机专业基础课程的笔记整理,主要涵盖计算机系统概述章节内容。文章从计算机硬件发展历程讲起,介绍了从第一代电子管计算机到第四代超大规模集成电路计算机的演变过程,以及摩尔定律的应用。笔记详细阐述了冯诺依曼计算机的五大特点,包括存储程序思想、硬件组成结构等,并对比了传统与现代计算机结构的差异。重点解析了计算机五大功能部件(输入/输出设备、存储器、运算器、控制器)的工作原理,特别对存储器的MAR/MDR寄存器、运算器的ALU单元和控制器的PC/IR寄存器进行了详细说明。最后通过具体示例演示

2026-01-14 21:13:31 627

原创 【数据结构】两道二叉树的OJ题(二叉树前序遍历、二叉树遍历)

本文介绍了二叉树前序遍历的实现方法。首先通过递归计算二叉树节点数确定数组大小,然后实现前序遍历将节点值存入数组。针对递归过程中数组索引可能被覆盖的问题,采用传址调用方式保持索引值。此外还展示了如何根据输入字符串构建二叉树并进行中序遍历。关键点包括:输出型参数的使用、递归索引值的处理、以及字符串构建二叉树的方法。代码示例清晰展示了这些概念的具体实现。

2025-12-26 15:49:53 359

原创 【数据结构】二叉树的性质(附上选择题,用以巩固知识点)

摘要:本文总结了二叉树的基本性质,包括满二叉树的节点数量规律(第i层有$2^{i-1}$个节点,h层共$2^h-1$个节点)和任意二叉树中叶节点与度为2节点的关系($n_0=n_2+1$)。通过两道选择题展示了性质的应用:第一题通过完全二叉树特性推导叶节点数$n_0=n$;第二题利用节点关系式求解得叶节点数为384。证明过程从节点度和边的关系入手,建立了关键等式。

2025-12-24 10:50:13 841

原创 【数据结构】二叉树链式结构的实现

本文介绍了二叉树的链式存储结构及其基本操作。首先定义了二叉树的结构体,包含数据域和左右指针域。通过手动创建节点并连接,构建了一个示例二叉树。详细讲解了三种遍历方式:前序遍历(根-左-右)、中序遍历(左-根-右)和后序遍历(留作练习)。提供了两种计算节点个数的方法:全局变量法和递归法,并指出前者的缺陷。最后介绍了计算叶子节点数量的递归实现,强调了对空指针的处理。所有代码示例都配有测试结果验证正确性。

2025-12-22 19:12:40 951

原创 【数据结构】堆排序详解

本文介绍了堆排序的原理及实现方法。堆排序分为建堆和排序两个步骤,分别采用向上调整(Up)和向下调整(Down)算法。文章通过图示详细说明了两种算法的操作过程,并给出了相应的代码实现。测试结果显示两种方法均能正确排序。分析表明,向下调整算法的时间复杂度为O(n),效率更高。最后总结了堆排序的规律:排降序建小堆,排升序建大堆。文章还介绍了向下调整算法的优化实现及其时间复杂度分析。

2025-12-22 10:59:41 661

原创 【数据结构】从零手撕小堆:图解+代码实现,带你彻底搞懂堆插入删除与堆排序!

本文介绍了堆的概念、性质及其实现方法。堆是一种特殊的完全二叉树,分为小堆(父结点≤子结点)和大堆(父结点≥子结点)。堆通过数组存储,利用下标关系表示父子结点。文章详细讲解了堆的初始化、销毁、插入和删除操作,重点分析了插入时的向上调整(AdjustUp)和删除时的向下调整(AdjustDown)算法。通过图示和代码示例,展示了如何维护堆的性质,确保在插入和删除元素后仍保持堆的特性。堆的实现结合了数组存储的高效性和完全二叉树的逻辑结构。

2025-12-20 18:08:02 495 1

原创 队列与栈三题彻底吃透:用队列实现栈 / 用栈实现队列 / 设计循环队列

本文通过三个题目,系统梳理队列与栈的核心思想与实现细节,适合基础较弱的同学循序渐进地理解与上手。push往非空队列中插入元素;pop先搬运后删除——把非空队列元素搬到空队列,直到只剩最后一个,再删除它;始终保持一个队列为空、一个队列不空,逻辑清晰可控。入队:元素进入pushst;出队:若popst为空,先把pushst全部导入popst;队头:永远在popst的栈顶。

2025-12-18 09:20:00 600

原创 【数据结构】C语言实现队列(Queue):链式存储与操作详解

本文详细讲解了数据结构中“队列”的核心概念及其在 C语言中的链式模拟实现。通过图解与源码结合的方式,深入剖析了队列 FIFO(先进先出)的特性、结构体定义、入队出队操作及内存管理。针对初学者容易忽视的“野指针”和“判空逻辑”陷阱进行了重点标注与修复,适合 C语言初学者、考研党及编程爱好者阅读与实战。

2025-12-16 17:14:37 677

原创 【算法竞赛干货】队列怎么写最快?数组 + 双指针:5 分钟学会,代码直接用!

队列是一种遵循先进先出(FIFO)原则的受限线性表,其核心操作包括入队(从队尾插入)和出队(从队头删除)。本文通过生活场景类比(如排队打饭)直观解释队列概念,并详细介绍了用数组模拟队列的实现方法。文章指出数组实现相比链表更高效稳定,同时提供了初始化、入队、出队、查询队头/队尾等操作的代码模板及注意事项,强调操作时需判断队列空满状态以避免越界错误。通过图解和代码示例,完整呈现了队列的核心特性与基础实现。

2025-12-14 23:43:27 909 1

原创 【相交链表】【环形链表】【环形链表II】三个相互关联的链表题带你巩固链表知识!!

本文建议配合前文使用效果更加!相交链表先说思路,然后分析。找到两个链表的尾节点,比较尾节点是否相同,先判断链表是否相交;如果相交,设置两个指针,一个指向长链表,一个指向短链表,让长指针先走几步,使它们处在同一起跑线上,然后遍历链表,当它们指向的位置相同时就找到了相交的节点。那么如何找到长指针先走的步数呢?我们通过画图分析。显而易见,多走的步数是lenB-lenA。* };*///找尾节点,顺便求链表的长度lenA++;lenB++;

2025-12-13 01:54:24 659

原创 【数据结构】栈是什么?傻傻分不清,保姆级文章,一文带你速通栈结构!!

本文介绍了栈的基本概念、实现方式及功能实现。栈是一种后进先出(LIFO)的线性表,可以通过数组、单链表或双链表实现,其中数组实现方式具有最优性能。文章详细讲解了栈的结构定义、初始化、销毁、入栈、出栈、取栈顶数据、判空以及获取数据个数等功能的代码实现,并通过测试用例验证了各项功能的正确性。完整代码展示了如何用C++实现一个完整的栈数据结构。

2025-12-11 20:25:38 732

原创 【数据结构】链表详解

链表是 C++ 中动态存储的线性数据结构,由节点构成(含数据域 + 指针域),节点通过指针串联,内存非连续。通俗一点的来说,我们可以将链表想象成一串项链。项链上的珠子就是链表的节点,节点上面储存着数据和指向下一个珠子的地址;而串联起整个项链的线,就相当于链表通过存储在节点中的指针串联起所有的数据。类似于上图,data和next分别指代节点中的数据域和指针域。每个节点的指针域的内容刚好是下一个节点的地址,链表就通过这样的结构串联起每一个节点。终于写完了,好不容易TVT,哥们写了三天了,呜呜呜。

2025-12-02 21:51:14 1011 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除