[小森数据结构]看电影-顺序表技术精讲

故事前研(言)

小森去看电影<<流浪地球2>>的时候买电影票的场景.
在这里插入图片描述
突然一个叫高启强的人买电影票 拉了两个Hei友,来看电影 <<流浪地球2>>

在这里插入图片描述当场就害怕极了,我也知道他想干什么,于是乎就让他到我这里,“高启强”:你小子,有钱途啊哈,我:小事情,哈哈哈(心里想:我太衰了!)那两个嘿友不来看电影啊 !看到高启强来这里就,大家都害怕!于是乎都让位,从影友6,开始往后移动,影友6变影友7,影友5变影友6,我还是我一直不变,但变的是序号

在这里插入图片描述

顺序表技术精讲

可以看到以上的这种情景,一定会有人有点慌…
不要慌他不就是来看电影的吗?
这基于这样的情景,我一个菜只因(鸡)程序员来说,一定没问题的在这里插入图片描述

广告:时间 爽yy(歪歪)口服液,独家赞助 小森数据结构-情景篇 关注小森, 金日头条账号 小森程序员,和小破站 :小森程序员,抖因视频,喜瓜视频 感谢爽yy口服液!

为啥需要顺序表?

这个顺序表,让我想到了一首歌词 "手牵手,一步两步三步四步往前走"后面的对应着下一个技术点:"链表"敬请期待吧

一步两步三步四步 是不是连续 竟然是连续的,那不是非常好访问 每一个只因(在这里插入图片描述

脚印在春泥里 并且从七里香拉出臭臭的香香,所以计算机是怎么表示 这样的场景,并且使用数据结构里的算法
首先有人提出来一个问题 :“如果没有数据结构会怎样?”
那有可能 不会有我们各种 应用程序,和操作系统,以及不会产生军工企业… 因为所有的应用都会关键在数据是如何存储以及如何获取 比如说一个音乐播放器 的播放列表 是不是一个挨着一个?
敢问数据是不是,mp3的文件 或者并且音乐播放器自带文件 从网络获取数据 并且放入播放列表里 进行播放

“一步两步三步四步”
“望着天看星星”

所以为啥学习数据结构.就是知道计算机如何表示事物,并且实现不同的功能 算法就是实现功能 ,添加,删除,查找,替换,排序,等等
这些功能是必备的,而且也是需要改良,变成最优算法!

当我们去超市购物时,我们可以拿一个购物篮来存放我们要购买的商品,
这个购物篮就可以看做是顺序表。
在创建顺序表时,我们需要知道这个购物篮最多能装多少件商品
,然后再找到一些连续的空间来存放商品。
每放一件商品,我们就把购物篮中的商品数量加一,
这个数量就是当前顺序表中实际存储的元素数量。
顺序表中存储的元素可以是任何类型的商品,如食品、日用品、化妆品等。
由于顺序表的存储空间是连续的,因此在访问篮子中的任何商品时都非常方便快捷。

顺序表核心算法实现

欢迎你来到顺序表核心算法实现
这数据结构想必大家已经了解清楚了 那么你想不想亲自实现一波 无论你是IT还是非IT的都可以看懂并且 亲自 实现自己的顺序表

我们拉丝GO

首先 我们需要的是算法的思路, 并且自己独立实现(用画图,或者代码实现一波)

顺序表是一种线性数据结构,它可以用数组实现。顺序表的结构包括:

数据元素:顺序表中存储的元素,可以是任何数据类型,如整数、浮点数、字符等。

最大长度:顺序表的最大长度是指顺序表中最多可以存储多少个元素。在创建顺序表时需要确定最大长度,以便在申请内存空间时分配足够的空间。

当前长度:顺序表的当前长度是指当前顺序表中实际存储的元素数量。当顺序表中添加或删除元素时,当前长度也会相应地改变。

存储空间:顺序表的存储空间是指用来存储顺序表元素的连续内存空间。存储空间的大小取决于顺序表的最大长度和元素类型的大小。

//最大分配空间const int maxsize=2048;//定义顺序表结构体
struct SeqList{int *data; //存储数据的数组指针int capacity; //顺序表的最大长度int Size; //顺序表的当前长度
};

创建顺序表

SeqList createSeqList(int capacity=2048){SeqList seqList;seqList.capacity = capacity;seqList.data = new int[seqList.capacity];seqList.Size = 0;return seqList;
}

顺序表检测函数

bool check(SeqList &seqList){if(seqList.Size == 0){cout<<"顺序表为空";return false;}if(seqList.Size == seqList.capacity){cout<<"顺序表已满";return false;}return true;
}

顺序表尾部添加

//顺序表尾部添加
void add(SeqList &seqList, int value){if(!check(seqList)){cout<<"顺序表已满,无法添加"<<endl;return;}seqList.data[seqList.Size] = value;seqList.Size++;
}

顺序表遍历算法

//顺序表遍历算法
void traverse(SeqList &seqList){for(int i=0; i<seqList.Size; i++){cout<<seqList.data[i]<<" ";}cout<<endl;
}

检测位置

//检测位置
bool checkPos(SeqList &seqList, int index){if(index < 0 || index > seqList.Size){cout<<"插入位置不合法"<<endl;return;}
}

将index位置及其后面的元素后移一位

//将index位置及其后面的元素后移一位
void MoveBack(int index, SeqList &seqList){for(int i=seqList.Size-1; i>=index; i--){seqList.data[i+1] = seqList.data[i];}
}

顺序表插入算法

void insert(SeqList &seqList, int index, int value){if(checkPos(seqList, index))){cout<<"插入位置不合法"<<endl;return;}if(!check(seqList)){cout<<"顺序表已满,无法添加"<<endl;return;}MoveBack(index,seqList);seqList.data[index] = value;seqList.Size++;}

将index位置及其后面的元素前移一位

void MoveFroot(int index, SeqList &seqList){for(int i=index; i<seqList.Size-1; i++){seqList.data[i] = seqList.data[i+1];}
}

顺序表删除

void remove(SeqList &seqList, int index){if(checkPos(seqList, index)){cout<<"删除位置不合法"<<endl;return;}MoveFroot( index, seqList);seqList.Size--;
}

顺序表查询

int search(SeqList &seqList, int value){int i = 0;while(i < seqList.Size){if(seqList.data[i] == value){return i;}i++;}return -1;
}

逆序遍历

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/58412.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【分享贴】项目中为啥总是项目经理一人干着急?

看完了《狂飙》才发现&#xff0c;高启强才是咱项目经理的模范。前段时间身边同事都疯狂安利这部电视剧&#xff0c;但我哪有空余时间刷剧&#xff0c;直到最近才断断续续的追完。这才发现“高启强”这个人物身上有很多闪光点&#xff0c;值得学习借鉴。 他能从一个鱼贩逆袭成…

手捏Java知识点

今天开始面向对象了 面向对象基础 类&#xff1a;由属性和行为组成属性&#xff1a;在类中通过成员变量来体现行为&#xff1a;在类中通过成员方法来体现public class 类名{//成员变量变量1的数据类型 变量1;变量2的数据类型 变量2;...//成员方法方法1;方法2;...}有几个重要的概…

如何优雅地修改同事的代码

前言 互联网开发多以团队协同的方式为主&#xff0c;在实际的开发过程中&#xff0c;我们经常会面对在同事的代码的基础上重新开发的需求。然而由于人员的迭代、需求的变更、文档的缺失等原因&#xff0c;我们贸然修改同事的代码往往需要承担一些额外的开发风险&#xff0c;比如…

Java8 map.getOrDefault()你真的了解吗

大家好&#xff0c;我是三叔&#xff0c;很高兴这期又和大家见面了&#xff0c;一个奋斗在互联网的打工人。 map.getOrDefault()方法 在Java编程中&#xff0c;Map是一种非常常用的数据结构。Map通常用于存储键值对&#xff0c;其中每个键映射到一个值。当我们尝试访问一个不…

同是打工人,学Python搞副业的朋友跟高启强一样实现逆袭了?

年过完了&#xff0c;现在已经回归工作岗位&#xff0c;接着拧自己的螺丝钉&#xff0c;不过&#xff0c;假期也不算寂寞&#xff0c;追了大热的电视剧《狂飙》。卖鱼小贩高启强的逆袭让我这种打工人太羡慕了&#xff0c;当他坐在白金瀚的办公室里美滋滋的喝着红酒的时候&#…

张杰清唱高启强专属BGM简直就是天作之合,千万别点进来看

张杰清唱高启强专属BGM简直就是天作之合&#xff0c;千万别点进来看&#xff0c;#张杰#BGM#音乐 张杰演唱的《听》狂飙高启强自从出现在抖音上更是火得不可思议&#xff0c;它成为了不少年轻人喜爱的BGM&#xff0c;尤其是用它作为专属BGM的抖音视频更是受到网友的一致好评。 …

老默我想吃鱼了(抽象艺术)

目录 指针地位 代码示例 人物关系 代码分析 总结 指针地位 在C语言中 指针的地位可以说是王中王 代码示例 如下 #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main() {int a 15;printf("老默出手前鱼的值:%d\n", a);int* pa &a;*pa 30;p…

冯雷老师:为什么大嫂陈书婷让高启强终生难忘?

高启强对大嫂陈书婷的感情非常深&#xff0c;大嫂死后高启强终生未娶&#xff0c;那为什么大嫂陈书婷让高启强终生难忘呢&#xff1f; 第一、既能助力男人&#xff0c;又识大体懂分寸。在帮助高启强拜泰叔当干爹后&#xff0c;就回归家庭当一个贤妻良母。从不插手老公的生意。…

学术汇报(academic presentation)/PPT应该怎么做?

已经上了研究生两年了&#xff0c;但是一直没有规范过PPT应该怎么做&#xff1f;都是瞎做的&#xff0c;也没有注意过排版什么的&#xff0c;前一段时间被老师批评后&#xff0c;才开始想怎么做好学术汇报&#xff0c;下面将我整理的一些规范和步骤记录下来 一些琐碎的事情&…

阿里、腾讯御用PPT设计师:让你在年终汇报中做最靓的仔!

你知道现在年轻人靠什么赚钱吗&#xff1f; 前几天&#xff0c;知乎上一篇关于“副业”的回答吓我一跳&#xff0c;一个大三学生&#xff0c;只靠副业赚够14W。 14万什么概念&#xff0c;是一个普通白领不吃不喝至少2年的工资。 干什么能一下赚这么多&#xff1f; 他一没抢钱二…

ChatGPT中的提示工程(Prompt Engineering)怎么做?50页最新PPT下载

整理自&#xff1a;专知 在公众号后台回复 Prompt Engineering 即可获取PPT。 ChatGPT爆火之后&#xff0c;也逐渐衍生出一大堆新的概念和机会。提示工程&#xff08;Prompt Engineering&#xff09;便是其中之一。据笔者所知&#xff0c;国内外目前已有提示工程相关的工程师岗…

用 ChatGPT 将 Excel 工作效率提高 10 倍!离做PPT还远吗

源&#xff5c;机器之心 在未来&#xff0c;精通 Excel 或许不再是简历亮点了。 ChatGPT 自去年 11 月 30 日 OpenAI 重磅推出以来&#xff0c;这款 AI 聊天机器人迅速成为 AI 界的「当红炸子鸡」。一经发布&#xff0c;不少网友更是痴迷到通宵熬夜和它对话聊天&#xff0c;就为…

招银网络科技 笔试、面试

1. 笔试 1.1 题目 有16种状态码分别是1-16&#xff0c;本来应该记为{1, 1, 1, 3}&#xff0c;但是由于粗心记为{1113}&#xff0c;题目&#xff1a;求出给定的输入如{1113}能够构成不同状态码的个数。{1113}可以构成{1, 1, 1, 3}, {11, 1, 3}, {1, 11, 3}, {1, 1, 13}, {11, …

招商银行网点管理系统

目录 功能一&#xff1a;查询所有展示 1.根据城市来进行条件查询 2.当进入首页后显示所有网点信息 3.根据城市进行条件查询 功能二&#xff1a;新增网点 功能三&#xff1a;修改网点 功能四&#xff1a;删除功能 功能一&#xff1a;查询所有展示 1.根据城市来进行条件查…

独家 | 招商银行:玩转校园招聘新方式 挖掘金融科技新人才

数字经济时代&#xff0c;金融科技人才队伍的引进与培养是招商银行人才体系建设的关键任务。 01.金融科技校招2大核心课题 招商银行数字化转型过程中&#xff0c;线上化、生态化、平台化、智能化、数据化全面加速发展&#xff0c;对人才队伍能力提出新要求。 2大核心课题&am…

【招商银行数据方向笔试题】—— 信用卡推荐客户列表

题目&#xff1a; 现在信用卡开展营销活动&#xff0c;持有我行信用卡客户推荐新户办卡&#xff0c;开卡成功后可获得积分奖励。规定每个客户最多可推荐两个新户且一个新户只能被推荐一次。但允许链接效应&#xff0c;即若客户A推荐了新户B&#xff0c;新户B推荐新户C&#xff…

金融银行测试面试题分享

1、网上银行转账是怎么测的&#xff0c;设计一下测试用例。 回答思路&#xff1a; 宏观上可以从质量模型&#xff08;万能公式&#xff09;来考虑&#xff0c;重点需要测试转账的功能、性能与安全性。设计测试用例可以使用场景法为主&#xff0c;先列出转账的基本流和备选流。…

CNAPS Code 查询(招商银行)

招商银行的妹子实在太傻了&#xff0c;根本不知道什么是CNAPS Code、联行号&#xff0c;完全答非所问。 最后还是自己搞定了&#xff0c;如图: 最后再看看招行人员的英语水平&#xff0c;真是不知道什么是东西&#xff1a; 我的群&#xff1a;1、Cocos2D&Unity&Java程序…

性能超越GPU、FPGA,华人学者提出软件算法架构加速AI实时化

作者 | 王言治&#xff0c;美国东北大学电子与计算机工程系助理教授 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 近年来&#xff0c;机器学习(Machine Learning)领域的研究和发展可谓是与日俱新&#xff0c;各式各样与机器学习相关的研究成果与应用层出不穷&…

OpenAI到底做对了什么?

OpenAI通过一系列在AI技术和产品上的突破&#xff0c;引爆了通用人工智能&#xff08;AGI&#xff09;的发展&#xff0c;被微软CEO 萨提亚 纳德拉称为“堪比工业革命的技术浪潮”。OpenAI趟出来的以大语言模型为主的AGI技术路线&#xff0c;也基本上宣告了其他AI技术路线的终…