期末考试必备----数据结构----顺序表(初始化,插入,删除,合并)

本文主要是介绍期末考试必备----数据结构----顺序表(初始化,插入,删除,合并),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据结构专栏:数据结构_脑子不好的小菜鸟的博客-CSDN博客

				/*顺序表的基本操作*//*插入,删除*/
#define ok 1
#define error 0
#define overflow -2//溢出
#define initsize 50//初始数组长度
#define addsize 20//每次追加的长度typedef int status;//返回状态
typedef int elemtype;//数据类型typedef struct list
{elemtype* elem;//数组首元素递增int len;//数组元素个数int listsize;//开辟的数组长度
}qlist;status initlist(qlist& L)
{elemtype* p = (elemtype*)malloc(sizeof(elemtype) * initsize);if (p == NULL){printf("空间申请失败!\n");exit(overflow);}L.elem = p;L.listsize = initsize;L.len = 0;return ok;
}status input(qlist& L)
{printf("请输入顺序表的元素个数\n");int n;scanf("%d", &n);L.len = n;int i;printf("请输入顺序表中%d个元素:\n", n);//法一:普通写法//for (i = 0; i < L.len/**/; i++)//	scanf("%d", L.elem + i);/*把平时的数组名更改为L.elem*///法二:指针写法int* p = L.elem;for (p; p < L.elem + L.len/**/; p++)scanf("%d", p);/**/return ok;
}status output(qlist L)//不改变L,不传引用
{printf("打印顺序表元素:\n");int i;//法一:普通写法//for (i = 0; i < L.len; i++)//	printf("%d ", L.elem[i]);//printf("\n");//法二:指针写法int* p = L.elem;for (p; p < L.elem + L.len/**/; p++)printf("%d ", *p);/**/printf("\n");return ok;
}status insert(qlist& L)
{printf("请输入你要插入的位置:\n");int n;scanf("%d", &n);if (n < 1 || n > L.len){printf("插入位置错误!\n");return error;}int i;for (i = L.len - 1; i >= n - 1; i--)//插入:从后向前L.elem[i + 1] = L.elem[i];printf("请输入你要插入的数据!\n");int m;scanf("%d", &m);L.len++;/**/L.elem[n - 1] = m;printf("插入成功!\n");return ok;
}status dele(qlist& L)
{printf("请输入要删除的位置!\n");int n;scanf("%d", &n);if (n < 1 || n > L.len){printf("位置错误,删除失败!\n");exit(overflow);}int i;for (i = n - 1; i < L.len - 1; i++)L.elem[i] = L.elem[i + 1];L.len--;/**/printf("删除成功!\n");return ok;
}void mysort(qlist& L)
{//指针写法int* p, *q, temp;for (p = L.elem;  p < L.elem + L.len - 1;  p++){for (q = p + 1; q < L.elem + L.len; q++){if (*p > *q){temp = *p;*p = *q;*q = temp;}}}printf("排序好的顺序表为:\n");
}void mycombine(qlist L, qlist L1, qlist& L2)
{//下标写法int len = 0;int i = 0, j = 0, k;while (i < L.len && j < L1.len){while (i < L.len && L.elem[i] <= L1.elem[j]){L2.elem[len++] = L.elem[i];if (L.elem[i] == L1.elem[j])j++;i++;}if (i < L.len){while (j < L1.len && L1.elem[j] <= L.elem[i]){L2.elem[len++] = L1.elem[j];if (L.elem[i] == L1.elem[j])i++;j++;}}}if (i < L.len){for (i; i < L.len; i++)L2.elem[len++] = L.elem[i];}else{for (j; j < L1.len; j++)L2.elem[len++] = L1.elem[j];}L2.len = len;
}int main()
{qlist L;initlist(L);input(L);//output(L);//insert(L);//插入元素//output(L);//dele(L);//删除元素//output(L);/*排序,合并*/mysort(L);output(L);qlist L1;initlist(L1);input(L1);mysort(L1);output(L1);qlist L2;initlist(L2);//合并两个数组L1,L2mycombine(L, L1, L2);output(L2);return 0;
}

这篇关于期末考试必备----数据结构----顺序表(初始化,插入,删除,合并)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/871590

相关文章

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

Python使用python-can实现合并BLF文件

《Python使用python-can实现合并BLF文件》python-can库是Python生态中专注于CAN总线通信与数据处理的强大工具,本文将使用python-can为BLF文件合并提供高效灵活... 目录一、python-can 库:CAN 数据处理的利器二、BLF 文件合并核心代码解析1. 基础合

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺