数据结构(C语言版)01
//顺序存储
int main(){
int ans[5]={1,1,1,1,3};//定义并初始化
printf("%d",ans[4]);
return 0;
}
//链式存储
Typdef struct Lnode{ElemType data;struct Lnode *next;
}Londe,*LinKlist;Londe *L;
L=(LinkList)malloc(sizeof(Lnode));
A->next=B;B->next=C;
线性表:n个想同类型的元素组成的有序集合。(个数有限,每个元素占用相同大小空间,具有逻辑上的顺序性)
直接前驱,直接后继。
顺序表: 线性表的顺序表示(逻辑上相邻,物理上也相邻)
优点:可以随机存取表中任意一个,存储密度高,每个结点只存储数据元素。
缺点:插入和删除操作移动大量元素,数组的大小不好确认,造成很多碎片。
//顺序表的定义
#define Maxsize 50
typedef int Elemtype;
//静态分配
typedef struct {Elemtype data[Maxsize];int len;
}Sqlist;
//动态分配
#define InitSize 100;
typedef struct {Elemtype *data;int capacity;int lenth;
}SepList;//插入操作,插入到第i个元素前面 //L.data[i-1]=e
bool insert(Sqlist&L,int i,Elemtype e){if(i>L.len+1||i<0) return false;if(L.len>Maxsize) return false;for(int j=L.len;j>i-1;j--)L.data[j]=L.data[j-1];L.data[i-1]=e;L.len++;return true;
}
//删除操作,删除第i个元素
bool delet(Sqlist&L,int i){if(i>L.len||i<1) return false;if(L.len>Maxsize) return false;int x=L.data[i-1];for(int j=i-1;j<L.len;j++)L.data[j]=L.data[j+1];L.len--;return true;
}void printSq(Sqlist L){for(int i=0;i<L.len;i++)printf("%4d",L.data[i]);printf("\n");
}int main(){Sqlist L;bool ans;Elemtype del;for(int i=0;i<3;i++)L.data[i]=i;L.len=3;ans=insert(L,2,60);if(ans) printSq(L);ans=delet(L,1);if(ans) printSq(L);return 0;
}
知识点补充:
C的初始动态分配语句:
L.data=(ElemType*)malloc(sizeof(ElemType)*InitSize)
链表:逻辑上相邻的两个元素在物理位置上不相邻。
单链表:
优点:插入删除不需要移动元素,只需要修改指针;不需要大量连续的存储空间。
缺点:附加指针域,浪费存储空间;查找时每次都从头开始,依次查找,不能随机存取
//单链表
typedef struct LNode{ElemType data;struct LNode *next;
}LNode,*LinkList;
头指针:链表中第一个节点的存储位置,用来标识单链表
头结点:在单链表第一个(有值)的节点之前附加的一个结点,为了操作上的方便。(其data一般为空)有了头结点后,对在第一个结点前插入和删除第一个结点就可以统一操作,不用频繁的重置头指针。(但头结点实际上是可有可无的)
//创建新节点
p=(LNode*)malloc(sizeof(LNode))
p->data=x;//按序号查找结点值
LNode *p=L->next;
int j=1;
while(p&&j<i){p=p->next;j++;
}
return p;
//按值查找
LNode q=L->next;
while(q&&q.data!=e)q=q->next;
return q;
对应练习作业:王道OJ | 课时10作业 (lgwenda.com)
答案:核心代码不难,注意输出的格式!!!!
//oj-10
//初始化顺序表
#include<stdio.h>
#define MaxSize 50
typedef struct{int len;int data[MaxSize];
}Sqlist;
//插入元素
bool inseret(Sqlist &L,int i,int e){if(i>=L.len||i<1) return false;if(L.len>=MaxSize) return false;for(int j=L.len;j>=i;j--)L.data[j]=L.data[j-1];L.data[i-1]=e;L.len++;return true;
}
//删除元素
bool delet (Sqlist &L,int i){if(i>L.len||i<1) return false;int x=L.data[i];for(int j=i-1;j<L.len-1;j++){L.data[j]=L.data[j+1];}L.len--;return true;
}
void print(Sqlist L){for(int i=0;i<L.len;i++)printf("%3d",L.data[i]);printf("\n");//return 0;
}
//main()
int main(){Sqlist L;L.data[0]=1;L.data[1]=2;L.data[2]=3;L.len=3;int e;scanf("%d",&e);if(inseret(L,2,e)) print(L);else printf("false\n");int i;scanf("%d",&i);if(delet(L,i)) print(L);else printf("false\n");return 0;
}
相关文章:
数据结构(C语言版)01
//顺序存储 int main(){ int ans[5]{1,1,1,1,3};//定义并初始化 printf("%d",ans[4]); return 0; } //链式存储 Typdef struct Lnode{ElemType data;struct Lnode *next; }Londe,*LinKlist;Londe *L; L(LinkList)malloc(sizeof(Lnode)); A->nextB;B->nextC;…...
Node.js-文件读取输入
Node.js-文件读取输入 fs模块(操作文件的模块) 读取 fs.readFile(path[, options], callback);[]里面 是可选参数,表示以什么样的编码 格式读取path是路径callback表示读取完成后的回调函数 例子 fs.readFile (‘./files/11.txt…...

时隔一年的测评:gpt3.5发展到什么程度了?
名人说:一花独放不是春,百花齐放花满园。——《增广贤文》 作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、简要介绍1、chatgpt是什么?2、主要特点3、工作原理4、应用限制5、使…...

[RCTF2015]EasySQL1 题目分析与详解
一、题目介绍: 1、题目来源: BUUCTF网址 2、题目介绍: 拿到flag。 二、解题思路: 我们发现题目首页有登录和注册账号两个选项,我们首先尝试注册账号,尝试注册username为admin的账号,输入密码…...

开源的 Python 数据分析库Pandas 简介
阅读本文之前请参阅-----如何系统的自学python Pandas 是一个开源的 Python 数据分析库,它提供了高性能、易用的数据结构和数据分析工具。Pandas 特别适合处理表格数据,例如时间序列数据、异构数据等。以下是对 Pandas 的简明扼要的介绍,包括…...

LeetCode 2125.银行中的激光束数量
银行内部的防盗安全装置已经激活。给你一个下标从 0 开始的二进制字符串数组 bank ,表示银行的平面图,这是一个大小为 m x n 的二维矩阵。 bank[i] 表示第 i 行的设备分布,由若干 ‘0’ 和若干 ‘1’ 组成。‘0’ 表示单元格是空的࿰…...
【探索AI】Sora - 探索AI视频模型的无限可能
Sora - 探索AI视频模型的无限可能 随着人工智能技术的飞速发展,AI视频模型已成为科技领域的新热点。而在这个浪潮中,OpenAI推出的首个AI视频模型Sora,以其卓越的性能和前瞻性的技术,引领着AI视频领域的创新发展。让我们将一起探讨…...

NGINX的重写与反向代理机制解析
目录 引言 一、重写功能 (一)if指令 1.判断访问使用的协议 2.判断文件 (二)return指令 1.设置返回状态码 2.返回指定内容 3.指定URL (三)set指令 1.手动输入变量值 2.调用其它变量值为自定义变…...

JVM的深入理解
1、JVM(Java虚拟机):我们java编译时候,下通过把avac把.java文件转换成.class文件(字节码文件),之后我们通过jvm把字节码文件转换成对应的cpu能识别的机器指令(翻译官角色)…...

JavaWeb——007MYSQL(DQL多表设计)
# 数据库开发-MySQL 一级目录二级目录三级目录 1. 数据库操作-DQL1.1 介绍1.2 语法1.3 基本查询1.4 条件查询1.5 聚合函数1.6 分组查询1.7 排序查询1.8 分页查询1.9 案例1.9.1 案例一1.9.2 案例二 2. 多表设计2.1 一对多2.1.1 表设计2.1.2 外键约束 2.2 一对一2.3 多对多2.4 案…...
深度学习500问——Chapter01:数学基础
文章目录 前言 1.1 向量和矩阵 1.1.1 标量、向量、矩阵、张量之间的联系 1.1.2 张量与矩阵的区别 1.1.3 矩阵和向量相乘结果 1.1.4 向量和矩阵的范数归纳 1.1.5 如何判断一个矩阵为正定 1.2 导数和偏导数 1.2.1 导数偏导计算 1.2.2 导数和偏导数有什么区别 1.3 特征值和特征向量…...

day03_登录注销(前端接入登录,异常处理, 图片验证码,获取用户信息接口,退出功能)
文章目录 1. 前端接入登录1.1 修改前端代码1.2 跨域请求1.2.1 跨域请求简介1.2.2 COSR概述CORS简介CORS原理 1.2.3 CORS解决跨域 2. 异常处理2.1 提示空消息分析2.2 系统异常分类2.3 异常处理2.2.1 方案一2.2.2 方案二 3. 图片验证码3.1 图片验证码意义3.2 实现思路3.3 后端接口…...

k8s初始化报错 [ERROR CRI]: container runtime is not running: ......
一、环境参数 linux系统为centos7kubernetes版本为v1.28.2containerd版本为1.6.28 二、报错内容 执行初始化命令kubeadm init命令时报错,内容如下 error execution phase preflight: [preflight] Some fatal errors occurred:[ERROR CRI]: container runtime is…...
vscode windows 免密登录 powershell.sh
Linux 生成秘钥 ssh-keygenwindows powershell.sh $HOST_IP"zhang192.168.1.1" $PUBPATH"$HOME\.ssh\id_rsa.pub" $KEY(Get-Content "$PUBPATH" | Out-String); ssh "$HOST_IP" "mkdir -p ~/.ssh && chmod 700 ~/.ssh …...
10 种3D 建模技术
在本文中,我将列出 10 种不同类型的 3D 建模。也许可以了解下一个项目将走向何方,或者你可能会像我一样惊讶,究竟有多少 3D 被用作以多种方式进行可视化的工具。这些是我们将讨论和探索的建模类型: 盒子造型多边形建模Nurbs 和曲…...

常见的socket函数封装和多进程和多线程实现服务器并发
常见的socket函数封装和多进程和多线程实现服务器并发 1.常见的socket函数封装2.多进程和多线程实现服务器的并发2.1多进程服务器2.2多线程服务器2.3运行效果 1.常见的socket函数封装 accept函数或者read函数是阻塞函数,会被信号打断,我们不能让它停止&a…...

Tomcat架构分析
Tomcat的核心组件 Tomcat将请求器和处理器分离,使用多种请求器支持不同的网络协议,而处理器只有一个。从而网络协议和容器解耦。 Tomcat的容器 Host:Tomcat提供多个域名的服务,其将每个域名都视为一个虚拟的主机,在…...
旧项目集成阿里云滑动验证码(web和H5方式)
简述 旧项目集成阿里云滑动验证码(web和H5方式) 适用于servlet和HTML项目,VUE + springboot请看另一篇文档 前情提示 系统: 一说 部分截图、链接等因过期、更换域名、MD语法等可能不显示,可联系反馈(备注好博文地址),谢谢❤带有#号、删除线、不操作、不执行…...

机器人内部传感器阅读梳理及心得-速度传感器-数字式速度传感器
在机器人控制系统中,增量式编码器既可以作为位置传感器测量关节相对位置,又可作为速度传感器测量关节速度。当作为速度传感器时,既可以在模拟量方式下使用,又可以在数字量方式下使用。 模拟式方法 在这种方式下,需要…...

【vue+element ui】大屏自适应中el-select下拉内容在低分辨率下显示不全问题解决
目录 背景 现象 解决方案 背景 最近要把一个1920px*1080px的大屏改成自适应的;最低适配到1028px*720px; 现象 自适应适配改完之后 将电脑屏幕改成1028px*720px分辨率后,下拉显示正常 通过谷歌浏览器设置Toggle device toolbar为1028px*…...

19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...

STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...

2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版
1.题目描述 2.思路 当前的元素可以重复使用。 (1)确定回溯算法函数的参数和返回值(一般是void类型) (2)因为是用递归实现的,所以我们要确定终止条件 (3)单层搜索逻辑 二…...