- 博客(25)
- 收藏
- 关注
原创 数据结构与算法—15(栈在括号匹配的应用以及栈在表达式求值的应用(上半部分))
这里的"左右操作数"左优先 右优先原则在课本专业术语上是没有的,这里只是为了便于理解自己总结的。
2023-10-20 21:24:12 54
原创 数据结构与算法—11(循环链表,静态链表,顺序表与链表的比较)
循环链表的基本操作上图 的插入操作的代码是对双链表插入的补充和回顾注意在采用插入链表某一元素之后时要先处理插入元素与后继元素的指向性,然后再处理前驱的关系通过操作的时间,空间复杂度对两种线性表的优缺点进行分析,根据具体操作的要求下选择更为突出的符合该操作优点的线性表。
2023-10-16 19:40:32 46 1
原创 数据结构与算法—10(单链表的建立~双链表及其操作)
单链表的建立可以理解为是在初始化的基础上对链表进行元素的上图的这种算法虽然可以用已有的函数进行对应的元素插入建立单链表但是时间复杂度n2,算法在我们看来不够简洁高效综合考虑得出下图更为高效的算法同样的,头插法亦是如此经过优化可得到如下图
2023-10-13 20:32:17 45 1
原创 计算机组成原理——3(计算机系统的层次结构以及计算机性能指标)
(不同指令的cpi不同的理解;因为每个指令它对应的步骤是不同的)如下两图取数指令和乘法指令的执行步骤次数不同对于上图数据同路宽带的理解例如寄存器存储的是16bit而数据通路宽带只能输送8bit那么,就要同一个指令的数据就要传输两次吞吐量中的"请求"可以是一个指令也可以是一个完整的程序运行
2023-10-12 18:12:36 47
原创 计算机组成原理——2
2、字节:可以理解为一个字的小节,所以这个量比“字”要小。在冯·诺依曼架构中,它与位的关系是定死的——即8个二进制位为一字节,我们称这个为1Byte,或者简写成1B。3、字:可以理解为由若干个字节组成,不同计算机的字所代表的bit位是不同的,例如1字=8bit,1字=32bit。1、位:是计算机中最小的数据单位,它就是二进制0或1。字节就是8位二进制,能变化的只有字和字节之间的关系。2、字节(Byte或B)1。
2023-10-11 18:52:09 80
原创 数据结构与算法——8(单链表的定义及创建)
定义(Definition)指在程序中为某个变量、函数等分配内存空间,以便使用。定义包括声明,但声明不等于定义。定义除了需要指定标识符的名称、类型及参数信息外,还需要为其分配所需要的内存空间。一个标识符只能在一个源代码文件中进行定义,否则会引起重复定义错误。 声明(Declaration)指在程序的某个位置借助于关键字声明一个以后将被用到的变量、函数等,告诉编译器该标识符的名称、返回类型和参数类型等信息。但并不分配内存空间,也不会产生真正的指令。
2023-10-11 18:51:48 46
原创 计算机组成原理—1
是使一台计算机采用时间片轮转的方式同时为几个、几十个甚至几百个用户服务的一种操作系统。(第二代的计算机也只是用于科学计算等专业用途)(这个阶段的计算机仅适用于计算)
2023-10-10 19:46:10 42 2
原创 数据结构与算法—7
学习了查找算法以及算法操作的一般步骤之后,我们继续学习插入算法插入算法的思想如下判断插入位置i是否合法(在不在存储范围内)判断顺序表的存储空间是否已经满了,满了返回值ERROR将第n到i位的元素依次向后移动一个单位,空出要插入的第i位元素的位置将新元素e赋值给第i个位置表长度加一,插入成功返回OK 备注:通常情况下,被赋值的元素一般放在等号前面例如上图的赋值L.elem[j+1]=L.elem[j]插入算法 算法的时间复杂度会根据插入的位置不同而有所不同。结尾点最快,首结点最慢。(前提是线性表的插入算法)如
2023-10-09 16:05:33 41 1
原创 数据结构与算法—6
首先在操作算法中进行常量的定义例如输出结果中的结果我们可以用define函数定义将函数结果定义例如#define TURE 1,把true定义为1用1来代替,便于编程代码的判断与运行,同时我们也要把数据的类型进行具体的明确,与上述步骤类似我们要将函数类型用typedef进行定义,例如将int(整型)变量定义为其他的单词替换,便于数据处理(也可以不定义替换)平均查找长度的计算可以用正常的等差数列求和除以n进行计算,也可以用概率论里的古典概型计算期望的方式理解(前提是顺序查找)
2023-10-08 19:33:49 89 2
原创 数据结构与算法—4
接下来的几天我们会讨论如何用这两种存储结构来实现一些基本操作(如插入,删除,排序,筛选,查找等)我们知道计算机内部有两种基本存储结构。顺序存储(数组)和链式存储(指针)线性表顺序存储结构的图示如图所示。对于图书表的顺序存储结构类型定义。用一个简单的例子来解释一下如下。一、线性表中顺序表的表示与实现。顺序表中元素存储位置的计算。线性表的顺序表表示又称为。顺序存储结构或顺序映象。
2023-10-07 19:01:40 56 1
原创 数据结构与算法—3
许多实际应用问题所设涉及的基本操作(算法)有很大的相似性,不应为每个具体应用单独编写程序。线性表:由n(大于等于0)个数据元素(结点)a1 a2a3……我们都知道,数据结构包括的内容有逻辑结构,存储结构以及具体操作三部分内容。线性表中数据元素的类型可以是简单类型,也可以是复杂类型。今天主要来学习的是逻辑结构中线性结构中的线性表。1、线性表是具有相同特性的数据元素的一个有限序列。(抽象数据类型),然后实现其存储结构和基本操作。3、 线性表的基本操作分类(从具体应用中抽象出共性的?二、线性表的类型定义。
2023-09-29 18:35:19 38 1
原创 数据结构与算法—2
我们在《数据结构与算法—1》里讲解了数据结构的内容包括数据元素之间的逻辑关系以及内存结构(逻辑关系在计算机内部的映像)。对特定问题求解方法的步骤的一种描述, 它是指令的有限序列。算法是解决问题的一种方法或者过程,考虑如何将输入转换成输出,一个问题可以有多个算法。算法运行时间=每条语句的频度(次数)×该语句执行一次所需的时间(累加)每天语句执行一次的时间与计算机硬件本身有关而与算法本身无关。事前分析法:对算法所消耗的资源的估算方法。(1)时间效率:算法消耗的时间。(2)空间效率:算法消耗的内存。
2023-09-28 17:02:27 35 1
原创 数据结构与算法—1
通常是用计算机解题的步骤,通过将具体问题抽象成数据模型(分析问题,提取操作对象以及对象之间的关系,用数学语言描述)设计算法编程,调试,运行。数据元素不是孤立存在的,他们之间有这某种(可能是一种也可能是多种)关系,数据元素之间的关系即为数据结构。随着计算机的发展,计算机处理的问题也越来越非数值化,解决的问也逐渐不单单为了数值的结果。数据是一个很大的概念,是能够输入计算机能被计算机处理的各种符号的集合。数据的运算与实现(即在内存结构上对数据元素的可施加的操作)是性质相同的数据元素的集合,是数据的一个子集。
2023-09-27 19:42:19 52 2
原创 c语言笔记
include <stdio.h>的作用就是将stdio.h中的内容加载到main函数的前面,这样就能保证程序的正常运行。写代码的时候写了一个具体确定的量(如1,2,3,4.32,89,100)定义的第一行是个形式上的常量,但是编译器往后执行时依旧默认为变量。,凡是用到标准输入输出函数,就要调用该头文件。onst(不变的,恒定的)修饰的常变量。Define函数定义的变量是个常量。enum 变量(如sex)(宏定义函数放第一行)(求值有一定的范围)
2023-07-23 16:46:37 99
原创 C语言基础笔记
整数类型是%d,单精度浮点类型,也就是小数是%f,字符类型%c%c,%s这些代表你要输出的数据的数据类型:%d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数 %g 自动选择合适的表示法。10011001--ADD(加法)-ADD就是算汇编语言。(.c 文件--源文件 .h文件---头文件)写代码要用到的工具叫编译器(写代码的软件)
2023-07-22 19:34:29 29
原创 我的编程学习之路
对于编程来说我非计算机专业,学习c语言等等课程纯属兴趣,从入门到实际敲代码,给我了很多的感悟,学习编程不是一蹴而就的。17天的入门学习让我知道我想达到自己的预期并没有那麽容易,通过学习编程让我的自学能力达到自己的要求,让我的心性磨练的更耐心,沉得住气。从学习编程的直接效果上来说,我能达到一个能够自己处理一个项目理清大项目的工作并能在一点上做到更好即可。每天无课时花费3到4小时学习编程,有课固定一天学习1.5到2小时。如果真的从事IT我希望进入一些大厂(目前小白,大厂还不了解)加油吧,无论怎样未来可期。
2023-07-20 16:22:07 33
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人