顺序表和链表基础

2024-01-21

定义动态的顺序表

typedef int SLDataType;
typedef struct Seqlist {
	SLDataType* array;
	size_t size;
	size_t capacity;
}Seqlist;

在顺序表中插入数据

bool ListInsert(Seqlist* l, int i, SLDataType e) {
	if (i < 1 || i > l->capacity)
		return false;
	int j;
	for (j = l->capacity; j >= i; j--) {
		l->array[j] = l->array[j - 1];
	}
	l->array[i - 1] = e;
	l->size++;
	return true;
}

在顺序表中删除数据

bool ListInsert(Seqlist* l, int i, SLDataType*e) {
	if (i<1 || i>l->capacity) {
		return false;
	}
	e = l->array[i - 1];
	int j;
	for (j = i; j < l->size; j++) {
		l->array[j - 1] = l->array[j];
	}
	l->size--;
	return true;
}

按值查找操作

int LocateElem(Seqlist l, SLDataType e) {
	int i = 0;
	for (i = 0; i < l.size; i++) {
		if (l.array[i] == e)
			return i + 1;
	}
	return 0;
}

按位查找操作

int GetElem(Seqlist l, int i) {
	if (i<1 || i>l.capacity)
		return 0;
	return l.array[i - 1];
}

合并两个顺序表

#define MaxSize 20
bool Merge(Seqlist A, Seqlist B, Seqlist* C) {
	if (A.size + B.size > C->capacity)
		return false;
	int i = 0, j = 0, k = 0;
	while (i < A.size && j < B.size) {
		if (A.array[i] < B.array[j]) {
			C->array[k++] = A.array[i++];
		}
		else {
			C->array[k++] = B.array[j++];
		}
	}
	while (i < A.size) {
		C->array[k++] = A.array[i++];
	}
	while (j < B.size) {
		C->array[k++] = B.array[j++];
	}
	C->size = k;
	return true;
}

在链表中按序号查找结点值

typedef struct LNode {
	SLDataType data;
	struct LNode* next;
}LNode,*LinkList;
LNode* GetElem(LinkList L, int i) {
	int j = 1;
	LNode* p = L->next;
	if (i < 0)
		return NULL;
	if (i == 0)
		return L;
	while (p && j < i) {
		p = p->next;
		j++;
	}
	return p;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

顺序表和链表基础 的相关文章

随机推荐

  • 华为OD机试真题-分披萨-2023年OD统一考试(C卷)

    题目描述 吃货 和 馋嘴 两人到披萨店点了一份铁盘 圆形 披萨 并嘱咐店员将披萨按放射状切成大小相同的偶数扇形小块 但是粗心服务员将披萨切成了每块大小都完全不同奇数块 且肉眼能分辨出大小 由于两人都想吃到最多的披萨 他们商量了一个他们认为公
  • 华为OD统一考试 Python【数字转化】

    描述 我们想要一种特殊的整数编码方式 让数字小的时候 编码占的空间也小 编码的方法如下 我们每7位组成一部分来编码 在每个字节里 用前7位来存数字 如果后面还有数据 最高的那一位就是1 否则就是0 数据要按小端序保存 也就是说 小的数据部分
  • XRD精修结果都包括些什么?-科学指南针

    X射线粉末衍射精修在诸多文章中都有出现 特别是一些无机材料体系 拿到一个可精修的数据 精修完成之后能给出什么结果呢 一般说来 能给出以下几个结果 Rietveld全谱拟合数据 一般需要自己作图 精修输出文件 包括拟合R因子 Rexp Rwp
  • 强烈推荐收藏!LlamaIndex 官方发布高清大图,纵览高级 RAG技术

    近日 Llamaindex 官方博客重磅发布了一篇博文 A Cheat Sheet and Some Recipes For Building Advanced RAG 通过一张图给开发者总结了当下主流的高级RAG技术 帮助应对复杂的生产场
  • 两个不同类型的知识库管理工具:Docusaurus和HelpLook怎么选?

    在今天的信息化世界 知识库管理工具的重要性日益突出 它们不仅有助于公司高效地组织和分享信息 还能优化工作流程 提升生产力 而在众多知识库管理工具中 Docusaurus和HelpLook是两种比较有特色的工具 但是不同的工具有各自的特点和功
  • 如何快速申请GPT账号?

    详情点击链接 如何快速申请GPT账号 一OpenAI 1 最新大模型GPT 4 Turbo 2 最新发布的高级数据分析 AI画图 图像识别 文档API 3 GPT Store 4 从0到1创建自己的GPT应用 5 模型Gemini以及大模型
  • 核磁共振谱图的一维、二维(氢谱、碳谱)解析-科学指南针

    核磁共振 谱图分析 在学习核磁共振谱图之前 我们应该先了解化学位移 Hz 它的本意是指 质子周围基团的性质不同 使它的共振频率不同 但由于核共振频率的化学位移只有百万分之一 采用绝对表示法非常不便 因而采用相对表示法 为此选择一个参比物 T
  • 手把手教你用 Stable Diffusion 写好提示词

    Stable Diffusion 技术把 AI 图像生成提高到了一个全新高度 文生图 Text to image 生成质量很大程度上取决于你的提示词 Prompt 好不好 前面文章写了一篇文章 一份保姆级的 Stable Diffusion
  • 论文写作“the”的用法?-科学指南针

    1 感觉满篇好多 the 先说一点儿统计数据 和我所做东西紧密相关的7篇快报 总字数14000 the 1000次 平均每14个字出现一次 英语中频率排名第一的 the 语料库的统计是每16个字出现一次 考虑到学术写作的指代重复性高 情有可
  • 气质联用解析-科学指南针

    GC MS全称气相色谱法 质谱法联用 Gas chromatograohy mass spectrometry 简称气质联用 是将气相色谱仪器 GC 与质谱仪 MS 通过适当接口 interface 相结合 借助强大的计算机技术 进行联用分
  • 未知材料分析中使用的现代分析方法汇总-科学指南针

    1 X射线衍射分析 XRD X射线衍射分析是利用晶体形成的X射线衍射 对物质进行内部原子在空间分布状况的结构分析方法 本法的特点在于可以获得元素存在的化合物状态 原子间相互结合的方式 从而可进行价态分析 可用于对环境固体污染物的物相鉴定 如
  • 机器学习算法实战案例:BiLSTM实现多变量多步光伏预测

    文章目录 1 数据处理 1 1 导入库文件 1 2 导入数据集 1 3 缺失值分析 2 构造训练数据
  • 软件测试中的白盒测试,这些技巧你知道吗?

    对于很多刚开始学习软件测试的小伙伴来说 如果能尽早将黑盒 白盒测试弄明白 掌握两种测试的结论和基本原理 将对自己后期的学习有较好的帮助 今天 我们就来聊聊黑盒 白盒测试的相关话题 1 黑盒测试的方法和小结 最常见黑盒测试方法包括 边界值 等
  • 两篇毕业论文致谢同一个女朋友?哈哈哈哈!

    论文查重率 绝对是每个毕业党心头的一抹淡淡的忧桑 想一下 你很用心的准备了几个月的时间 选题 实验 架构 论述 字数 排版等等 拿着一份修改了几十遍的文稿 小心翼翼地递交系统查重审核 屏幕却瞬间 蹦出了一个爆炸的百分比 那种心情怎么形容呢
  • 新手也能看懂的【前端自动化测试入门】!

    前言 最近在网上搜索前端自动化测试相关的文档 但是发现网上的文章都是偏使用 没有把一些基础概念说清楚 导致后续一口气遇到一些 karma Jasmine jest Mocha Chai BDD 等词汇的时候很容易一头雾水 这次一方面整理一下
  • 做大模型也有1年多了,聊聊这段时间的感悟!

    自ChatGPT问世以来 做大模型也有1年多了 今天给大家分享这一年后的感悟 过去一年应该是AI圈最万千瞩目的一年了 大家对大模型 OpenAI ChatGPT AI Native Agent这些词投入了太多的关注 以至于有一年的时间好像经
  • 题解 | #每个创作者每月的涨粉率及截止当前的总粉丝量#

    签约前被华子HR给恶心劝退了 孝转黑 理想裁应届 没事吧 没事吧 工作强度巨大 团队氛围极差 勾心斗角穿小鞋 职场感受流程一团 天翼云校招新HC发布 天翼云校招新HC发布 有哪些权威的职业性格测试 职业性格测试靠谱吗 望父成龙 快过年了 别
  • 亮点 | 有前途的高性能薄膜制备利器——脉冲激光沉积技术(PLD)

    脉冲激光沉积 PLD 就是将激光聚焦于靶材上一个较小的面积 利用激光的高能量密度将部分靶材料蒸发甚至电离 使其能够脱离靶材而向基底运动 进而在基底上沉积 从而形成薄膜的一种方式 脉冲激光沉积 PLD 原理 整个PLD镀膜过程通常分为三个阶段
  • 最新解决找不到vcruntime140_1.dll无法继续执行代码问题的方法

    在计算机系统运行过程中 时常会遇到无法找到特定动态链接库文件的情况 其中vcruntime140 1 dll就是一个常见的问题焦点 这个dll文件是Visual C Redistributable的重要组成部分 对于许多基于此环境开发的应用
  • 顺序表和链表基础

    定义动态的顺序表 typedef int SLDataType typedef struct Seqlist SLDataType array size t size size t capacity Seqlist 在顺序表中插入数据 bo