顺序表操作

归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝

既然选择了远方,当不负青春,砥砺前行!

将两个有序的线性表合并为一个有序的线性表 

main.cpp文件

//将两个有序的线性表合并为一个有序的线性表
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include"SeqList.h"void MergeList(SeqList A, SeqList B, SeqList* C);int main()
{DataType a[] = { 8,17,17,25,29 };DataType b[] = { 3,9,21,21,26,57 };DataType e;SeqList A, B, C;InitList(&A);InitList(&B);InitList(&C);for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++){InsertElem(&A, i, a[i]);}for (int i = 0; i < sizeof(b) / sizeof(b[0]); i++){InsertElem(&B, i, b[i]);}printf("顺序表A中的元素:\n");for (int i = 0; i < A.length; i++){GetElem(A, i, &e);printf("%4d", e);}printf("\n");printf("顺序表B中的元素:\n");for (int i = 0; i < B.length; i++){GetElem(B, i, &e);printf("%4d", e);}printf("\n");printf("将顺序表A和B合并得到C:\n");MergeList(A, B, &C);for (int i = 0; i < C.length; i++){GetElem(C, i, &e);printf("%4d", e);}return 0;
}void MergeList(SeqList A, SeqList B, SeqList* C)
{int i, j, k;i = j = k = 0;DataType e1, e2;while (i < A.length-1 && j < B.length-1){GetElem(A, i, &e1);GetElem(B, j, &e2);if (e1 <= e2){InsertElem(C, k, e1);i++;k++;}else{InsertElem(C, k, e2);j++;k++;}}while (i <= A.length - 1){GetElem(A, i, &e1);InsertElem(C, k, e1);i++;k++;}while (j <= B.length - 1){GetElem(B, j, &e2);InsertElem(C, k, e2);j++;k++;}C->length = A.length + B.length;
}

SeqList.h文件 

#pragma once
#include<stdio.h>
#include"SeqList.h"typedef int DataType;
constexpr auto MaxSize = 100;typedef struct
{DataType data[MaxSize];int length;
}SeqList;void InitList(SeqList* L);int ListEmpty(SeqList L);int GetElem(SeqList L, int i, DataType* e);int LocateElem(SeqList L, DataType e);int InsertElem(SeqList* L, int i, DataType e);int DeleteElem(SeqList* L, int i, DataType* e);int ListLength(SeqList L);void ClearList(SeqList* L);

 SeqList.cpp文件

#include "SeqList.h"
#define _CRT_SECURE_NO_WARNINGS 1void InitList(SeqList* L)
{L->length = 0;
}int ListEmpty(SeqList L)
{if (L.length == 0){return 1;}elsereturn 0;
}int GetElem(SeqList L, int i, DataType* e)
{if (i<0 || i>L.length-1){return 0;}*e = L.data[i];return 1;
}int LocateElem(SeqList L, DataType e)
{int i;for (i = 0; i < L.length; i++){if (L.data[i] == e)return i;}return -1;
}int InsertElem(SeqList* L, int i, DataType e)
{if (i<0 || i>L->length+1){printf("插入位置i不合法!\n");return -1;}else if(L->length>=MaxSize){printf("顺序表已满,不能插入元素!\n");return 0;}else{int j;for (j = L->length; j >= i; j--) {L->data[j+1] = L->data[j];}L->data[i] = e;(L->length++);return 1;}
}int DeleteElem(SeqList* L, int i, DataType* e)
{if (i > L->length - 1 || i < 0){printf("删除位置不合适!\n");return 0;}else{int j;	*e = L->data[i];for (j = 0; j < i; j++){L->data[j] = L->data[j + 1];}(L->length--);return 1;}
}int ListLength(SeqList L)
{return L.length;
}void ClearList(SeqList* L)
{L->length = 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Python语法糖

N u m P y NumPy NumPy的 n d i t e r nditer nditer nditer 是 NumPy 提供的一种多维迭代器&#xff0c;用于对多维数组进行迭代操作。它可以替代传统的嵌套循环&#xff0c;在处理多维数组时更加方便和高效。 迭代器可以按照不同的顺序遍历数组的元素&#xff0c;也可以控制…

(含链接)2024年NVIDIA GPU技术大会开发者合集(专为开发者挑选的合集)

2024年NVIDIA GPU技术大会开发者合集 我专门为开发者整理了NVIDIA GPU技术大会上专注技术的内容合集, 希望可以帮助开发者朋友们快速了解NVIDIA的最新技术. 注意:在电脑端打开更友好, 可以直接进入每一项的网页 文章目录 2024年NVIDIA GPU技术大会开发者合集如何登录和预约会…

【论文笔记合集】ARIMA 非平稳过程通过差分转化为平稳过程

本文作者&#xff1a; slience_me 文章目录 ARIMA 非平稳过程通过差分转化为平稳过程文章原文具体解释详解参照 ARIMA 非平稳过程通过差分转化为平稳过程 文章原文 Many time series forecasting methods start from the classic tools [38, 10]. ARIMA [7, 6] tackles the fo…

虚拟内存相关知识汇总(程序重定位)

前置知识&#xff1a; Windows的内存可以被分为两个层面&#xff1a;物理内存和虚拟内存。其中&#xff0c;物理内存非常复杂&#xff0c;需要进入到Windows内核级别ring0才能看到。通常在用户模式下&#xff0c;用调试器看到的内存地址都是虚拟地址。 1.虚拟内存的定义 虚拟…

Java实现知乎热点小时榜爬虫

1.效果演示 1.1 热点问题列表 启动程序后&#xff0c;自动展示热点问题&#xff0c;并等待终端输入 1.2 根据序号选择想看的热点问题 输入问题序号&#xff0c;展示回答内容 1.3 退出 输入q即可退出程序 2.源码 2.1 pom.xml <?xml version"1.0" enco…

腾讯云怎么申请免费服务器?2024免费云主机申请教程

腾讯云免费服务器申请入口 https://curl.qcloud.com/FJhqoVDP 免费服务器可选轻量应用服务器和云服务器CVM&#xff0c;轻量配置可选2核2G3M、2核8G7M和4核8G12M&#xff0c;CVM云服务器可选2核2G3M和2核4G3M配置&#xff0c;腾讯云服务器网txyfwq.com分享2024年最新腾讯云免费…

2024年腾讯云免费服务器申请教程,个人和企业均可领取

腾讯云免费服务器申请入口 https://curl.qcloud.com/FJhqoVDP 免费服务器可选轻量应用服务器和云服务器CVM&#xff0c;轻量配置可选2核2G3M、2核8G7M和4核8G12M&#xff0c;CVM云服务器可选2核2G3M和2核4G3M配置&#xff0c;腾讯云服务器网txyfwq.com分享2024年最新腾讯云免费…

大数据数据分析-scala、IDEA、jdk之间的搭配关系

Scala主要是一门面向对象编程语言和函数式编程语言。 一、大数据框架&#xff08;处理海量/流式数据&#xff09; - ---以HADOOP 2. x为系列的大数据生态系统处理框架 离线数据分析&#xff0c;分析的数据为N1天数据 -----MapReduce 并行计算框架&#xff0c;分而治之…

Java数据结构二叉树练习

1.检查两棵二叉树是否都是相同的练习 我要求时间复杂度为1&#xff0c;所以我们不用前序中序后序是否都一样来进行判断 如何判断二叉树是否都是相同的子问题方式 先判断根节点是否相同 再判断左子树和右子树是否都是相同的 先用代码判断不相同的情况&#xff0c;都相同的化…

多线程JUC 第2季 wait和notify唤醒机制

一 wait和notify的区别与相同 1.1 wait和notify的作用 1) 使用wait()、notify()和notifyAII()时需要先对调用对象加锁。否则直接调用的话会抛出 IllegalMonitorStateExceptiona。 2) 调用wait()方法后&#xff0c;线程状态。由RUNNING变为WAITING&#xff0c;并将当前线程放置…

pyinstaller打包不显示DOS窗口

1 使用pyinstaller 打包 会不显示DOS窗口 打包的时候把-w去掉就行了

微信小程序开发学习笔记——4.1小程序官方api文档showToast提示框

>>跟着b站up主“咸虾米_”学习微信小程序开发中&#xff0c;把学习记录存到这方便后续查找。 课程连接&#xff1a;https://www.bilibili.com/video/BV19G4y1K74d?p26&vd_source9b149469177ab5fdc47515e14cf3cf74 一、showToast属性 https://developers.weixin.q…

Chapter 16 Techniques of Design-Oriented Analysis: Extra Element Theorems

Chapter 16 Techniques of Design-Oriented Analysis: Extra Element Theorems 这一章介绍Middlebrook’s Extra Element Theorem (EET), 这是一个强力的分析复杂电路传输函数的工具. 16.1 Extra Element Theorem 对于一个已知的传输函数, Extra Element Theorem可以帮助算出…

Java学习笔记(15)

JDK7前时间相关类 Date时间类 Simpledateformat Format 格式化 Parse 解析 默认格式 指定格式 EE&#xff1a;表示周几 Parse&#xff1a;把字符串时间转成date对象 注意&#xff1a;创建对象的格式要和字符串的格式一样 Calendar日历类 不能创建对象 Getinstance 获取当…

Qt for Mac阻止MacOS系统休眠

Qt开发的应用程序如果电脑休眠了会影响软件的使用&#xff0c;因此在软件的使用过程中需要防止电脑休眠&#xff0c;在Win上有专门的API进行处理&#xff0c;在Mac上也必需使用Mac平台自身的API&#xff0c;本篇介绍在Mac平台下使用Qt阻止Mac系统休眠。 要调用Mac系统的API&am…

leetcode代码记录(整数拆分

目录 1. 题目&#xff1a;2. 我的代码&#xff1a;小结&#xff1a; 1. 题目&#xff1a; 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入…

PMP-第二章-项目运作环境

2.1 项目所受的影响 2.2 事业环境因素 Enterprise Environmental Factors(EEF) 定义&#xff1a;项目团队不能控制的、将对项目产生影响、限制或指令作用的各种条件 特点&#xff1a; 大多数项目管理过程的输入(例外&#xff1a;人力资源管理过程)可能提高或限制项目管理的灵…

[论文精读]Dynamic Coarse-to-Fine Learning for Oriented Tiny Object Detection

论文网址&#xff1a;[2304.08876] 用于定向微小目标检测的动态粗到细学习 (arxiv.org) 论文代码&#xff1a;https://github.com/ChaselTsui/mmrotate-dcfl 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&…

2024年腾讯云免费服务器申请领取入口

腾讯云免费服务器申请入口 https://curl.qcloud.com/FJhqoVDP 免费服务器可选轻量应用服务器和云服务器CVM&#xff0c;轻量配置可选2核2G3M、2核8G7M和4核8G12M&#xff0c;CVM云服务器可选2核2G3M和2核4G3M配置&#xff0c;腾讯云服务器网txyfwq.com分享2024年最新腾讯云免费…

离散数学——(6)谓词逻辑的翻译,谓词的合式公式,约束变元及换名,闭式,谓词的等价,谓词的等价式和蕴含式

目录 1.谓词逻辑的翻译 2.谓词的合式公式 1.原子谓词公式 3.约束变元及换名 1.换名规则 4.闭式 5.谓词的等价 1.命题公式的推广 2.量词与联结词之间的关系 6.谓词的等价和蕴含式 量词分配率等价式 多重量词等价式 蕴含式 1.谓词逻辑的翻译 2.谓词的合式…