- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 邻接表的NextNeighbor(G,x,y)返回值问题
王道数据结构第6章图归纳总结中给出的NextNeighbor函数以下是邻接表的定义typedef struct ArcNode{ //边表结点 int adjvex; //该弧所指向的顶点的位置 struct ArcNode *next; //指向下一条弧的指针 // int data; //网的边权值} ArcNode;typedef struct VNode{
2021-12-12 22:32:45
3687
3
原创 【数据结构】共享栈
设有两个栈s1、s2都采用顺序栈方式,并且共享一个存储区[0,…,maxsize-1],为了尽量利用空间,减少溢出的可能,可采用栈顶相向,迎面增长的存储方式。试设计s1、s2有关入栈和出栈的操作算法。#include <cstdio>#include <iostream>#define maxsize 100using namespace std;typedef struct { int stack[maxsize]; int top[2];}stk;stk s;
2021-10-28 17:13:05
888
原创 【数据结构】二叉树的一般遍历
//先序遍历 (根左右)void PreOrder(BiTree T) { if (T != NULL) { visit(T); //访问根结点 PreOrder(T->lchild); //访问左孩子 PreOrder(T->rchild); //访问右孩子 }}//中序遍历 (左根右)void InOrder(BiTree T) { if (T != NULL) { InOrder(T->lchild); visit(T); InOrde
2021-10-24 00:57:38
1988
原创 【数据结构】C++STL库中双链表的应用
#include <iostream>#include <list>using namespace std;int main(){ list<char> L; //用于生成管理char型元素的双向链表 L.push_front('b'); //在表的开头添加元素 b [b] L.push_back('c'); //在表的末尾添加元素 c [bc] L.push_front('a'); //在表的开头添加元素 a [abc] cout<<
2021-10-23 16:17:32
241
原创 【数据结构】使用队列实现循环调度法
现有名称为namei且处理时间为timei的n个任务按照顺序排成一列,CPU通过循环调度法逐一处理这些任务,每个任务最多处理q ms(这个时间称为时间片)。如果q ms之后任务尚未处理完毕,那么该任务将被移动至队伍最末尾,CPU随即开始处理下一个任务。举个例子,假设q是100,然后有如下任务队列。A(150) – B(80) – C(200) – D(200)首先A被处理100 ms,然后带着剩余的50 ms移动至队尾B(80) – C(200) – D(200) – A(50)随后B被处理80 m
2021-10-22 10:17:55
810
原创 【数据结构】使用栈计算后缀表达式
#include <cstdio>#include <cstdlib>#include <cstring>#define Maxsize 2000int S[Maxsize], top;void push(int x) { S[++top] = x;}int pop() { top--; return S[top + 1];}int main() { int a, b; char s[1000]; while (scanf("%s", s)
2021-10-22 00:29:33
147
原创 【数据结构】合并链表
//将两个单链表合并为一个新的链表,并由函数返回结果单链表#include <stdio.h>#include <stdlib.h>typedef struct LNode { int data; struct LNode* next;}LNode, * LinkList;void CreateLinkList(LinkList& L, int n) { L = (LinkList)malloc(sizeof(LNode)); LNode* p, * q;
2021-10-16 17:09:38
337
原创 【数据结构】单链表倒置
我们清楚,单链表的创建有两种方法:尾插法和头插法。尾插法是按照输入的顺序创建单链表,而头插法则是按照输入的逆序创建单链表。typedef struct LNode { int data; //数据域 struct LNode* next; //指针域}LNode,* LinkList;//创建单链表的结构体//尾插法void CreateLinkList(LinkList& L, int n) { LNode* p, * q; L = (LinkList)malloc(size
2021-10-15 11:10:52
1485
原创 【数据结构】给定两个单链表,编写算法找出两个链表的公共结点
#include<stdio.h>#include<stdlib.h>#define MAX 100int cnt=0,a[MAX];typedef struct LNode{ int data; struct LNode *next; }LNode,* LinkList;//创建单链表(逆序)LinkList CreateList(struct LNode *L,int n){ L=(LinkList)malloc(sizeof(LNode)); L
2021-10-12 19:46:14
3085
2
原创 【计算机组成原理】硬件如何比较数的大小
硬件如何比较数的大小高级语言视角:if(a>b){...}else{...}硬件视角通过“cmp指令”比较a和b(如cmp a,b),实质上是用a-b相减的结果信息会记录在 程序状态字寄存器(PSW) 中,CPU根据PSW的某几个标志位进行条件判断,来决定是否转移。补充:关于程序状态字寄存器(PSW),我们并不陌生,在操作系统切换处理器状态(用户态和核心态),就是通过改变PSW中的某标志位。(如0为用户态,1为核心态)PSW中有几个比特位记录上次运算的结果进位/借位标志CF:最
2021-08-22 21:20:18
3224
原创 【计算机组成原理】计算机工作过程
高级语言int a = 2,b = 3,c = 1,y = 0;void main(){ y = a*b+c;}编译装入主存转化为机器语言
2021-08-15 07:51:05
523
原创 【操作系统】操作系统的特征
操作系统的特征 (四个)并发、分享、虚拟、异步1、理解并发和并行的区别;2、并发和共享互为存在条件;3、没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统最基本特征。一、并发:指两个或多个事件在同一时间间隔内发生,这些时间宏观上是同时发生,但微观上是交替发生。 常考易混概念 并行:指两个或多个事件在同一时刻同时发生。eg:假设老渣和小渣每人有两个女朋友。任务1:和1号约会,任务2:和2号约会a.小渣:和1号、2号一起约会。 并行约会b.老渣: 8点~9点: 1
2021-08-12 22:59:13
489
原创 【STM32单片机】继电器控制电磁阀与行程(限位)开关的应用
【STM32单片机】继电器控制电磁阀与行程(限位)开关的应用STM32单片机高电平为3.3V,而电磁阀的工作电压常为12V/24V,这意味着需要借助继电器控制电磁阀。继电器的本质是通过单片机引脚高低电平控制的(电磁铁)开关。继电器是高电平触发还是低电平触发取决于上拉/下拉电阻。笔者设置为限位开关高电平触发(当然也可以用低电平触发)。COM端连接单片机的VCC,NC端连接单片机的GND,NO端连接单片机的引脚。未触发状态下COM端与NC端连通,当限位开关触发后,由于COM端与NO端连通,引脚电平发生变化
2021-06-08 00:45:51
20848
8
原创 【矩阵变换】19268:旋转树塔
【矩阵变换】19268:旋转树塔题目描述小 X 是 C 城著名的考古学家。一日,他被重金聘请调查一座荒漠中的宫殿。宫殿大门紧闭,但这难不倒聪明的小X。他在隐蔽处发现了两个数字正方形:小 X 略加思索便发现了其中的奥妙:把数字从小到大依次填入正方形中,每次填最外面的一圈;每一圈从左上角开始,按照顺时针、逆时针、顺时针……的顺序填。作为小 X 的助手,他希望你帮助他以相同的规律填上旁边 n*n 的空白方阵。这里方阵是数字正方形的简称,通常用二维数组来存放其中的数字。输入输入数据仅有一行,包含一个正
2021-05-31 11:05:41
442
1
原创 【贪心算法】11117:八目鳗
【贪心算法】11117:八目鳗题目描述米斯蒂娅去捕捉八目鳗为开店作准备。现在,她在一个有八目鳗的池塘边。她知道池塘里的有n条八目鳗,把第i条八目鳗从池塘弄回小店需要ti∗2个单位的时间(毕竟需要往返)。这些八目鳗会自己吃P点!随着时间的推移,米斯琪把它们弄回来所消耗的体力与时间成正比,即在第t个时刻开始运第i条八目鳗所消耗的体力为t∗ci,其中,ci是给定的常数。一开始所有的八目鳗都没有P点,也就是说运送第一条八目鳗所消耗的体力为0。米斯琪想知道把所有八目鳗运回小店所消耗的体力最少是多少。输入第
2021-05-29 01:02:30
374
2
原创 【贪心算法】19270:勇士斗恶龙
【贪心算法】19270:勇士斗恶龙题目描述小 X 穿越到了异世界,国王命令他招揽勇士,杀死恶龙,救回公主。异世界是高度数据化的。恶龙有一个攻击力 ATK,一个生命值 HP。类似的,每个勇士也有一个攻击力 Ai,一个生命值 Hi。战斗是回合制的,并且每次只能由一个勇士和恶龙单挑。战斗中,每个回合恶龙的生命值会减去这个勇士的攻击力,这个勇士的生命值会减去恶龙的攻击力。如果回合结束的时候恶龙的生命值小于等于 0,那么恶龙就被杀死了;如果这个勇士的生命值小于等于 0,那么这个勇士就被击败了,需要换上另一个
2021-05-28 13:32:03
1158
原创 【贪心算法】1351:独木舟上的旅行
【贪心算法】1351:独木舟上的旅行题目描述进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别。一条独木舟最多只能乘坐两个人,且乘客的总重量不能超过独木舟的最大承载量。我们要尽量减少这次活动中的花销,所以要找出可以安置所有旅客的最少的独木舟条数。现在请写一个程序,读入独木舟的最大承载量、旅客数目和每位旅客的重量。根据给出的规则,计算要安置所有旅客必须的最少的独木舟条数,并输出结果。输入第一行输入s,表示测试数据的组数;每组数据的第一行包括两个整数w,n,80<=w<=20
2021-05-28 12:14:58
566
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人