
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
我们前面学习了单链表,其是我们链表中的其中一种,我们前面的单链表其实全称是单向无头不循环链表,我们的链表从三个维度进行分类,一共分为八种。1、单向和双向可以看到第一个链表,其只能找到其后一个节点,是没办法找到其前面的节点的,其遍历只能从左往右遍历。而我们的双向链表,其节点中,有三个元素,一比我们单向的多了一个,其就多了一共指向前一共节点的指针,我们的双向链表是可以寻找到前一个节点的,其是可以从左往

题目的要求很简单,就是要求我们判断其输入的括号字符串是否是有效的括号,那么我们要如何判断呢?我们可以这样,我们遍历出传入的字符串,然后我们创建一个栈,然后如果这个字符是组左括号,那么我们就让其入栈,然后如果是右括号,那么我们就取栈顶的元素和这个右括号进行对比,如果匹配那么就出栈,不匹配的话那么就说明这个字符串不是有效的括号,然后继续进行比较,直到字符串遍历完,那么我们字符串遍历完后,是否就表示我们

文章摘要:本文详细介绍了链式结构二叉树的实现方法及其基本操作。主要内容包括:1)使用链表结构实现二叉树,每个节点包含数据域和左右孩子指针;2)三种遍历方式(前序、中序、后序)的递归实现方法;3)二叉树的插入、统计节点数、求叶子节点数、求第K层节点数、计算高度、查找特定值等操作;4)层序遍历的实现需要借助队列结构;5)判断完全二叉树的算法。文章通过代码示例和图解详细说明了各操作的实现原理,强调链式结

前面我们对于哈希表的实现使用的是开放定址法的方式。不过这种方式也不是当前的主流方式。

提到线程,那么我们不得不先回忆进程,我们知道进程是在内存中执行的程序,然后进程=进程内核数据结构+数据和代码。然后我们创建一个进程要给其创建对应的task_struct,虚拟地址空间,页表等。线程:是在进程内部的执行分支。本质就是在进程的虚拟地址空间进行运行。线程属于操作系统调度的基本单位,进程是承担分配系统资源的实体。下面我们直接学习在Linux中,线程的原理和如何操作的。

Linux是一款操作系统,但是我们用户是无法直接接触到其核心的。广义的操作系统分为:操作系统内核,外壳程序命令行,必要的应用程序。我们的Shell就属于外壳程序命令行这种,然后外壳程序命令行还有图形化界面等。为啥我们用户无法直接操作Linux的核心呢?就拿我们使用windows操作系统为例,我们使用其是通过一个图形化界面来操作的,然后图形化界面再去操作底层。

vi/vim简单来说,他们都是多模式编辑器,不同的是vim是vi的升级版,其不仅兼容vi的所有指令,而且还有一些新的特性在里面。就好如语法加亮,可视化操作不仅可以在终端运行,也可以运行在windows上。在Linux系统下开发工具是独立存在的编写代码:vim编译代码:gcc/g++调试:gbd/cgbd构建工具:makefile/make/cmake/gitvim的三种基础模式:命令模式插入模式底

make:是一个命令makefile:一个文件make是一个命令行工具,其核心功能是根据预先定义的规则,自动操作。就比如我们提前预设好的一个流程,然后通过make去完成。makefile是一个文本文件,其就好比如我们的流程图,其中设定好了我们要操作的内容。其是make的操作手册。通过make来调用makefile文件,然后过程的实现在makefile文本文件中写。

代码的编译运行有两种模式debug和release模式,在gcc/g++编译器下,其默认是release模式,所以我们在Linux环境下,要想对代码进行调试,就需要借助gdb这个工具。其使用方法是使用gcc/g++对代码进行编译的时候,加上-g选项。run(r):程序从开始运行直到遇到:断点/结束/程序语法错误。delete 断点的编号(d 断点编号):删除指定编号的断点。可以认为gbd是Linu

前面我们学习进程的时候,其实就已经见到信号这个东西了,只不过我们没有对其进行深究,信号其实就是我们的操作系统中对于一些事件,进行的一些约定俗成。就比如我们生活中,对于红绿灯,我们会知道,红灯停绿灯行的。在我们的Linux一共有如下几个信号:其中1-31号信号是普通信号,然后34-64为实时信号,我们用户就只会接触到1-31号信号,注意的是我们的信号是1开始的,没看到有0号信号。但是我们前面学习进程








