当前位置: 首页 > article >正文

3.29:数据结构-绪论线性表-上

一、时间复杂度

1、ADT

2、定义法计算时间复杂度:统计核心语句的总执行次数

 (1)例题1,与2022年的真题对比着写

此题关键在于求和公式的转化,类型为:线性循环嵌套非线性循环

2022年那道题如果考场上实在脑子不清楚,直接代数也行。

(2)例题2:非线性循环嵌套线性循环

2022年真题

注意:可能会考究竟执行了多少次数,而非只是简单的求出时间复杂度。

(3)三重循环

(4)思考题

(5)歪门邪道

二、线性表

1、

三、rw1000题时间复杂度纠错

1、斐波那契的递归时间复杂度

可以视为一颗二叉树,求二叉树的节点个数,或者:

数一的话会求斐波那契的通项,其中一项就是他的复杂度, O  (根号5-1)/2的n次方;

若返回F(n-1),时间复杂度就是O(n)

2、

四、转王道C语言督学营:13.4

1、有关顺序栈的操作

#include<iostream>using namespace std;//顺序栈定义
typedef struct
{int Stack[100];int top;
}SqStack;//初始化栈
void InitStack(SqStack &S)
{S.top = -1;
}//判断栈是否为空
bool IsEmpty(SqStack& S)
{if (S.top == -1) return false;else return true;
}//元素入栈
void Push(SqStack& S, int x)
{S.top++;S.Stack[S.top] = x;
}//元素出栈
int Pop(SqStack& S)
{int x = S.Stack[S.top];S.top--;return x;
}//判断栈是否满
bool IsFull (SqStack& S)
{if (S.top == 99) return true;else return false;
}int main()
{SqStack S;InitStack(S);bool flag = IsEmpty(S);Push(S, 4);Push(S, 5);int y = Pop(S);int y2 = Pop(S);cout << y << endl;cout << y2 << endl;
}

2、13.5:队列-循环队列原理解析

队头队尾这个概念也可以与“排队”类比,排队就是从队尾插入,从队头出来;

(1)循环队列实现

数据结构定义:

typedef struct
{int data[MaxSize];int front;int rear;
}SqQueue;SqQueue Q;

主要操作:

//循环队列入队
bool EnQUeue(SqQueue& Q, int x)
{//首先判断队列是否满了if ((Q.rear + 1) % MaxSize == Q.front) return false;Q.data[Q.rear] = x;Q.rear = (Q.rear + 1) % MaxSize;return true;
}//循环队列出队
bool DeQueue(SqQueue& Q, int& y)
{//判断队列是否为空if (Q.front == Q.rear) return false;y = Q.data[Q.front];Q.front = (Q.front + 1) % MaxSize;
}//循环队列初始化
void InitQueue(SqQueue& Q)
{Q.front = Q.rear = 0;
}

(2)队列的链式存储,注意:还是带头结点的

定义:

同时带有队头指针与队尾指针的单链表,头指针指向队头节点,尾指针指向队尾节点,既:单链表的最后一个节点。

注意:对链表实现队列并不需要判断链表是否满了,而只需判断链表是否为空。

数据结构:

//首先定义链表节点
typedef struct
{int val;LinkNode* next;
}LinkNode,*LinkList;//链表结构体
typedef struct
{LinkNode* front;LinkNode* rear;
}QueueList;QueueList Q;

注意一下:以上第一个结构体会报错,原因是省略了 LinkNode,因为内部要用。

改正:

//首先定义链表节点
typedef struct LinkNode
{int val;LinkNode *next;
}LinkNode;//链表结构体
typedef struct
{LinkNode* front;LinkNode* rear;
}QueueList;QueueList Q;

主要操作:

//队列的链式存储//首先定义链表节点
typedef struct LinkNode
{int val;LinkNode *next;
}LinkNode;//链表结构体
typedef struct
{LinkNode* front;LinkNode* rear;
}QueueList;QueueList Q;//首先进行初始化,带头节点
void Init_LinstQueue(QueueList &Q)
{//定义头节点LinkNode* p = new LinkNode();Q.front = Q.rear = p;Q.front->next= NULL;
}//入队
void EnQueue_Link(QueueList &Q, int x)
{LinkNode* p = new LinkNode();p->val = x;//这一步容易忘p->next = NULL;Q.rear->next = p;Q.rear = p;
}//出队
bool DeQueue_Link(QueueList& Q, int& y)
{//首先判断链表是否为空if (Q.front == Q.rear) return false;LinkNode* p = Q.front->next;y = p->val;Q.front->next = p->next;//判断删除过后是否为空,毕竟如果为空的话rear指针要进行改变if (p == Q.rear) Q.rear = Q.front;delete(p);
}int main()
{Init_LinstQueue(Q);EnQueue_Link(Q, 1);EnQueue_Link(Q, 2);EnQueue_Link(Q, 3);EnQueue_Link(Q, 4);int x;bool e = DeQueue_Link(Q, x);cout << x << endl;
}

结束!

相关文章:

3.29:数据结构-绪论线性表-上

一、时间复杂度 1、ADT 2、定义法计算时间复杂度&#xff1a;统计核心语句的总执行次数 &#xff08;1&#xff09;例题1&#xff0c;与2022年的真题对比着写 此题关键在于求和公式的转化&#xff0c;类型为&#xff1a;线性循环嵌套非线性循环 2022年那道题如果考场上实在脑…...

Java项目如何打jar包?

1.java把项目打包成jar 步骤一、IDEA -> File -> Project Structure -> Artifacts -> -> JAR -> From moduls with dependencies... -> 选择 Module 和 Main Class -> 选择 JAR files from libraries JAR files from libraries 解释 extract to the t…...

【奶茶经济学的符号暴力本质】

金字塔式七层分析框架&#xff1a;奶茶经济学的符号暴力本质 第一层&#xff1a;缺货的戏剧经济学 结论&#xff1a;13.7%缺货率是精密计算的神经钩 机制&#xff1a;喜茶新品首日仅投放86.3%门店&#xff0c;制造"限量焦虑"激活前额叶决策区矛盾验证&#xff1a; …...

Python PDF解析利器:pdfplumber | AI应用开发

Python PDF解析利器&#xff1a;pdfplumber全面指南 1. 简介与安装 1.1 pdfplumber概述 pdfplumber是一个Python库&#xff0c;专门用于从PDF文件中提取文本、表格和其他信息。相比其他PDF处理库&#xff0c;pdfplumber提供了更直观的API和更精确的文本定位能力。 主要特点…...

大模型架构记录13【hr agent】

一 Function calling 函数调用 from dotenv import load_dotenv, find_dotenvload_dotenv(find_dotenv())from openai import OpenAI import jsonclient OpenAI()# Example dummy function hard coded to return the same weather # In production, this could be your back…...

conda 清除 tarballs 减少磁盘占用 、 conda rename 重命名环境、conda create -n qwen --clone 当前环境

&#x1f947; 版权: 本文由【墨理学AI】原创首发、各位读者大大、敬请查阅、感谢三连 &#x1f389; 声明: 作为全网 AI 领域 干货最多的博主之一&#xff0c;❤️ 不负光阴不负卿 ❤️ 文章目录 conda clean --tarballsconda rename 重命名环境conda create -n qwen --clone …...

Java基础-24-继承-认识继承-权限修饰符-继承的特点

在Java中&#xff0c;继承是面向对象编程&#xff08;OOP&#xff09;的一个重要特性。通过继承&#xff0c;一个类可以复用另一个类的属性和方法&#xff0c;从而实现代码的重用性和扩展性。以下是关于继承的一些关键点&#xff0c;包括权限修饰符和继承的特点。 1. 继承的基本…...

Bootstrap 表格:高效布局与动态交互的实践指南

Bootstrap 表格:高效布局与动态交互的实践指南 引言 Bootstrap 是一个流行的前端框架,它为开发者提供了丰富的组件和工具,使得构建响应式、美观且功能丰富的网页变得更加简单。表格是网页中常见的元素,用于展示数据。Bootstrap 提供了强大的表格组件,可以帮助开发者轻松…...

pycharm相对路径引用方法

用于打字不方便&#xff0c;以下直接手写放图&#xff0c;直观理解...

新能源智慧灯杆的智能照明系统如何实现节能?

叁仟新能源智慧灯杆的智能照明系统可通过以下多种方式实现节能&#xff1a; 智能调光控制 光传感器技术&#xff1a;在灯杆上安装光传感器&#xff0c;实时监测周围环境的光照强度。当环境光线充足时&#xff0c;如白天或有其他强光源时&#xff0c;智能照明系统会自动降低路…...

Jenkins教程(自动化部署)

Jenkins教程(自动化部署) 1. Jenkins是什么&#xff1f; Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具&#xff0c;广泛用于项目开发&#xff0c;具有自动化构建、测试和部署等功能。Jenkins用Java语言编写&#xff0c;可在Tomcat等流行的servlet容器中运行&…...

行业智能体大爆发,分布式智能云有解

Manus的一夜爆红&#xff0c;在全球范围内引爆关于AI智能体的讨论。 与过去一般的AI助手不同&#xff0c;智能体&#xff08;AI Agent&#xff09;并非只是被动响应&#xff0c;而是主动感知、决策并执行的应用。Gartner预测&#xff0c;到2028年&#xff0c;15%的日常工作决策…...

日语Learn,英语再认识(5)

This is a dedicated function — it exists solely to solve this case. This is a dedicated function. It’s a dedicated method for solving this case. 其他备选词&#xff08;但没dedicated精准&#xff09;&#xff1a; special → 含糊&#xff0c;有时只是“特别”…...

【区块链安全 | 第十四篇】类型之值类型(一)

文章目录 值类型布尔值整数运算符取模运算指数运算 定点数地址&#xff08;Address&#xff09;类型转换地址的成员balance 和 transfersendcall&#xff0c;delegatecall 和 staticcallcode 和 codehash 合约类型&#xff08;Contract Types&#xff09;固定大小字节数组&…...

音视频入门基础:MPEG2-TS专题(25)——通过FFmpeg命令使用UDP发送TS流

一、通过FFmpeg命令使用UDP发送TS流 通过以下FFmpeg命令可以将一个mp4文件转换为ts封装&#xff0c;并基于UDP发送&#xff08;推流&#xff09;&#xff1a; ffmpeg.exe -re -i input.mp4 -vcodec copy -acodec copy -f mpegts udp://127.0.0.1:1234 其中&#xff1a; “in…...

Error in torch with streamlit

报错信息: This is the error which is a conflict between torch and streamlit: Examining the path of torch.classes raised: Tried to instantiate class path.path’, but it does not exist! Ensure that it is registered via torch::class Steps to reproduce: py…...

网络基础知识介绍

目录 一、计算机网络背景与发展 1.1 计算机网络的背景 ​编辑1.2 计算机网络的发展历程 二、网络协议 2.1 认识网络协议 2.3 协议分层 2.4 OSI七层模型 2.5 TCP/IP 五层(或四层)模型 三、网络传输基本流程 3.1 网络传输流…...

MIPS-32架构(寄存器堆,指令系统,运算器)

文章目录 0 Preview:寄存器32通用0 $zero1 $at2—3 \$v0-$v14—7 \$a0-$a38—15 \$t0-$t716—23 \$s0-$s724—25 \$t8-$t926—27 \$k0-$k128 $gp29 $sp30 $fp 指令系统运算存储器 0 Preview: MIPS架构有32位版本和64位版本&#xff0c;本文介绍32位版本 寄存器 正如笔者曾说…...

zip和tar.gz

本文来源&#xff1a; 在压缩文件格式选择上&#xff0c;zip和tar.gz有本质差异&#xff0c;主要体现在以下五个方面&#xff1a; 一、压缩机制不同 ​tar.gz是"两步走"方案&#xff1a;先用tar工具将多个文件/目录打包为单个未压缩的归档文件&#xff08;保留权限…...

【什么是机器学习——多项式逼近】

什么是机器学习——多项式逼近 机器学习可以分成三大类别,监督学习、非监督学习、强化学习。三大类别背后的数学原理不同。监督学习使用了数学分析中的函数逼近方法和概率统计中的极大似然方法;非监督学习使用聚类和EM算法;强化学习使用马尔可夫决策过程的想法。 机器学习的…...

C++中的搜索算法实现

C中的搜索算法实现 在编程中&#xff0c;搜索算法是解决各种问题的基础工具之一。C作为一种功能强大的编程语言&#xff0c;提供了多种实现搜索算法的方式。本文将详细介绍两种常见的搜索算法&#xff1a;线性搜索和二分搜索&#xff0c;并通过代码示例展示它们的实现。 一、…...

(二十三)Dart 中的 Mixins 使用教程

Dart 中的 Mixins 使用教程 Mixins 简介 Mixins 是 Dart 中一种强大的特性&#xff0c;中文意思是“混入”&#xff0c;它允许在类中混入其他功能&#xff0c;从而实现类似多继承的功能。与传统的继承不同&#xff0c;Mixins 提供了一种更加灵活的方式来组合类的功能&#xf…...

《午夜地铁的幽灵AP》

点击下面图片带您领略全新的嵌入式学习路线 &#x1f525;爆款热榜 88万阅读 1.6万收藏 文章目录 **第一章&#xff1a;末班车的二进制月光****第二章&#xff1a;ESP32的赛博墓志铭****第三章&#xff1a;都市传说与CRC校验****第四章&#xff1a;数字孪生的献祭仪式****终章…...

创作领域“<em >彩</em><em>票</em><em>导</em><em>师</em><em>带</em><em>玩</em><em>群

天光揉碎最后一块夜斑&#xff0c;露珠压弯草叶的脆响惊醒了沉睡的巷子。青灰雾霭中&#xff0c;老墙上的爬山虎在打哈欠&#xff0c;卷曲的藤须滴落隔夜的月光。sFsTU...

Spring Cloud Gateway中GatewayFilter Factories(网关过滤工厂)的详细介绍

文章目录 1、网关过滤工厂介绍2、 GatewayFilter 过滤器的基本配置3、 Spring Cloud Gateway 内置 GatewayFilter Factories3.1、AddRequestHeader GatewayFilter3.2、AddResponseHeader GatewayFilter3.3、AddRequestParameter GatewayFilter3.4、RewritePath GatewayFilter3.…...

微服务架构:构建可持续演进的微服务架构的原则与实践指南

引言&#xff1a;微服务的价值锚点 某物流公司微服务化后&#xff0c;订单履约周期从2小时缩短至15分钟&#xff0c;但技术债务却以每年200%的速度增长。这个案例揭示了一个关键认知&#xff1a;‌微服务架构的成败不在于技术实现&#xff0c;而在于是否建立有效的演进机制‌。…...

C++的四种类型转换

文章目录 const_cast:去掉常量类型的类型转换static_cast:提供编译器认为安全的类型转换&#xff08;在编译阶段完成类型转换&#xff09;reinterpret:类似c风格的强制类型转化dynamic_cast:主要用在继承结构里&#xff0c;可以支持RTTI类型识别的上下转换dynamic_cast<>…...

Python Cookbook-4.15 字典的一键多值

任务 需要一个字典&#xff0c;能够将每个键映射到多个值上。 解决方案 正常情况下&#xff0c;字典是一对一映射的&#xff0c;但要实现一对多映射也不难&#xff0c;换句话说&#xff0c;即一个键对应多个值。你有两个可选方案&#xff0c;但具体要看你怎么看待键的多个对…...

《Python实战进阶》No37: 强化学习入门加餐版3 之 Q-Learning算法可视化升级

连续第4篇文章写Q-Learning算法及可视化 Q-Learning强化学习算法在迷宫寻路中的应用 引言 强化学习是机器学习的一个重要分支&#xff0c;其核心理念是通过与环境的交互来学习最优策略。在上三篇文章中&#xff0c;《Python实战进阶》No37: 强化学习入门&#xff1a;Q-Learn…...

1.两数之和(Java)

1. 题目描述 LeetCode 1. 两数之和&#xff08;Two Sum&#xff09; 给定一个整数数组 nums 和一个目标值 target&#xff0c;请你在该数组中找出和为目标值的那两个整数&#xff0c;并返回它们的索引。 示例 1&#xff1a; 输入&#xff1a;nums [2,7,11,15], target 9 …...