C/C++
文章平均质量分 92
C/C++
PCGuo999
在校研究生,热爱计算机,平时分享和记录自己的学习笔记,非常欢迎大家一起讨论学习
展开
-
数据结构-树的讲解以及先序遍历、中序遍历、后序遍历的代码实现
树的定义树状图是一种数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树;1.专业定义有且只有一个称为根的结点有若干个互不相交的子树,这些子树本身也是一棵树2.通俗的定义树是由结点和边组成每个结点只有一个父结点,但可以有多个子结点原创 2020-06-29 21:13:03 · 1590 阅读 · 2 评论 -
递归的详细讲解及累加和、阶乘、排序、汉诺塔、斐波那契数的C代码实现
递归1.递归的定义一个函数自己直接或间接的调用自己程序调用自身的编程技巧称为递归。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。2.不同函数之间的调用调用原创 2020-06-29 14:41:00 · 385 阅读 · 0 评论 -
头文件#include和宏定义#define的了解与使用
头文件1.头文件的定义以.h为后缀的文件一般而言,每个C++/C程序通常由头文件和定义文件组成。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现。2.头文件的作用头文件的主要作用在于多个代码文件全局变量(函数)的重用、防止定义的冲突,对各个被调用函数给出一个描述,其本身不需要包含程序的逻辑实现代码,它只起描述性作用,用户程序只需要按照头文件中的接口声明来调用相关函数或变量,链接器会从库中寻找相应的实际定义代码。3.头文件的组成(1)头文件原创 2020-06-28 19:21:18 · 17765 阅读 · 5 评论 -
线性结构的两种常见应用之二 队列(附带实现代码)
线性结构的两种常见应用之二 队列1.定义一种可以实现先进先出的存储结构2.分类(1)链式队列——用链表实现(2)静态队列——用数组实现静态队列通常都必须是循环队列3.循环队列(1)静态队列为什么都必须是循环队列和链表不同的是,链表head指向第一个元素前的地址,而队列中rear指向最后一个元素的下一个地址因为静态队列是基于数组实现的,如果不用循环队列,会导致删除的元素所使用的空间无法继续使用,造成空间的浪费(2)需要几个参数来确定需要2个参数,第一个参数是front(前面),第二原创 2020-06-27 10:29:03 · 159 阅读 · 0 评论 -
结构体的定义和使用(附带实现代码)
为什么需要结构体为了表示一些复杂的事物,而普通的基本类型无法满足实际要求什么叫结构体结构体是用户根据实际需要,自己定义的。把一些基本类型数据组合在一起形成一个新的复合数据类型,这个叫做结构体和Java中的类一样如何定义一个结构体//方式一推荐使用第一种struct Student1//定义了一个数据类型叫struct Student1{ int age; float score; char sex[4];};//分号不能省略//方式二struct Student2{ in原创 2020-06-26 22:54:23 · 2986 阅读 · 1 评论 -
线性结构的两种常见应用之一 栈(附带实现代码)
线性结构的两种常见应用之一 栈1.栈的定义一种可以实现“先进后出”的存储结构栈类似于箱子,往里放书,一本一本往里放,取出的时候自顶向下一本一本取出void f(int k){ int m; double* q = (double*)malloc(200);}int main(){ int i = 10; int* p = (int*)malloc(200); //i,p,m,q是在栈中分配的 //200,100是在堆中分配的 //即动态分配是在堆中分配的,静态分配是在栈中分配原创 2020-06-26 22:51:58 · 205 阅读 · 0 评论 -
链式存储【链表】的定义及使用(附带实现代码)
链式存储【链表】1.链表的定义逻辑上连续,物理上不连续彼此通过指针相连每个结点只有一个前驱结点,每个结点只有一个后继结点首结点只有一个前驱,尾结点只有一个后继typedef struct LNode { int data; //数据域 pLNode pNext; //指针域,pNext是struct Node*类型}LNode,*pLNode;(1)链表的特点在内存中可以存在任何地方,不要求连续。每一个数据都保存了下一个数据的内存地址,通过这个地址找到下一个数据。 第一个人知道第原创 2020-06-26 22:50:48 · 1529 阅读 · 0 评论 -
连续存储【数组】的定义及使用(附带实现代码)
连续存储【数组】1.数组的定义元素类型相同,大小相等数组的特点在内存中,数组是一块连续的区域。数组需要预留空间,在使用前要先申请占内存的大小,可能会浪费内存空间。插入数据和删除数据效率低,插入数据时,这个位置后面的数据在内存中都要向后移。随机读取效率很高。因为数组是连续的,知道每一个数据的内存地址,可以直接找到给定地址的数据。并且不利于扩展,数组定义的空间不够时要重新定义数组。2.数组的优缺点(1)数组的优点随机访问性强查找速度快(2)数组的缺点插入和删除效率低可能浪原创 2020-06-26 22:49:50 · 1377 阅读 · 1 评论 -
非常适合零基础的指针学习(附带实现代码)
指针可以说是学习C/C++或者数据结构最重要的基础知识以下是我学习指针的学习笔记,附带所有可执行的代码,大多笔记都在代码中,这样更容易新手小白去理解,让我们一起进步吧!指针的重要性1.可以通过指针表示一些复杂的数据结构2.快速的传递数据,减少了内存的耗用3.使函数返回一个以上的值4.能直接访问硬件5.能够方便的处理字符串6.是理解面向对象语言中引用的基础总结:指针是C语言的灵魂指针的定义指针,是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分。指针也就是内存地址,指针变量原创 2020-06-03 22:16:08 · 425 阅读 · 0 评论