顺序表数据结构

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 顺序表
  • 一 什么是顺序表
  • 二 顺序表的组成结构
  • 顺序表的初始化
  • 顺序表的销毁
  • 顺序表的头插
  • 顺序表的头删
  • 顺序表的尾插
  • 顺序表的尾删
  • 在某一个节点中插入数据
  • 在某一个节点中删除数据
  • 修改数据

#include"pli.h"
Plist create_list()
{
	Plist L = (list*)malloc(sizeof(list));
	if (L == NULL)
	{

		printf("创建失败");
		return NULL;

	}
	L->len = 0;
	cout << "创建成功";
	return L;

}
int input_list(Plist L)
{
	int n;
	printf("请输入学生个数");
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		printf("请输入学号");
		cin >> L->data[i].id;
		printf("请输入名字");
		cin>> L->data[i].name;
		printf("请输入专业");
		cin>> L->data[i].major;
		printf("请输入年龄");
		cin>> L->data[i].age;
		L->len++;
	}
	return 0;
}
int full(Plist L)
{
	if (L->len == MAX)
	{
		return 1;
	}
	else
		return 0;
}
int insert_list(Plist L, int pos, student e)
{
	int sub = pos - 1;
	if (sub<0||sub>L->len||L->len==0||full(L))
	{
		printf("插入失败");
		return 0;

	}
	for (int i = L->len - 1; i >= sub; i--)
	{
		L->data[i + 1] = L->data[i];
	}
	L->data[sub] = e;
	L->len++;
	printf("插入成功");
	return 0;
}
int output_stu(Plist L)
{
	for (int i = 0; i < L->len; i++)
	{
		printf("学号");
		printf("%d\n", L->data[i].id);
		printf("姓名");
		printf("%s\n", L->data[i].name);
		printf("专业");
		printf("%s\n", L->data[i].major);
		printf("年纪");
		printf("%d\n", L->data[i].age);

	}
	return 0;

}
int delete_list(Plist L, int pos)
{

	int sub = pos - 1;
	if (sub < 0 || sub>L->len - 1 || L == NULL || full(L))
	{
		printf("删除失败");
		return -1;

	}
	for (int i = sub; i < L->len - 1; i++)
	{
		L->data[i] = L->data[i + 1];

	}
	L->len--;
	return 0;
}
int serch_list(Plist L, int pos)
{
	int sub=pos - 1;
	if (sub<0 || sub>L->len - 1 || L == NULL || L->len == 0)
	{
		printf("寻找失败");
		return -1;
	}
	printf("%d\t%s\t%s\t%d\n", L->data[sub].id, L->data[sub].name, L->data[sub].major, L->data[sub].age);
	return 0;
}
int change_list(Plist L, int pos, student f)
{
	int sub = pos - 1;
	if (sub<0 || sub>L->len - 1 || L == NULL || L->len == 0)
	{
		printf("寻找失败");
		return -1;
	}
	L->data[sub] = f;
	return 0;

}
int insert_first(Plist L, student f)
{
	insert_list(L, 1,  f);
	return 0;
}
int insert_rear(Plist L, student f)
{
	insert_list(L, L->len+1, f);
	return 0;
}
int repeat(Plist L)
{
	for(int i=0;i<L->len;i++)
		for (int j = i; j < L->len; j++)
		{
			if (strcmp(L->data[i].name, L->data[j].name) == 0)
			{
				delete_list(L, j + 1);
				j--;
			}
		}
	return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

干货:分享6款ai论文写作助手,一键生成原创论文(步骤+工具)

写一篇论文是一个复杂的过程&#xff0c;涉及多个步骤&#xff0c;包括选题、研究、撰写、编辑和校对。AI可以在其中的一些步骤中提供帮助&#xff0c;但最终的论文还是需要人类作者的深入思考和创造性输入。以下是六款值得推荐的AI论文写作助手&#xff0c;其中特别推荐千笔-A…

IDEA 新版本设置菜单展开

IDEA 新版本设置菜单展开 使用了新版本的IDEA 新UI后&#xff0c;常用的file&#xff0c;edit&#xff0c;view&#xff0c;菜单隐藏了 在设置中搜索后show main menu in a separate toolbar中可以打开。 打开设置 搜索show main menu in a separate toolbar后勾上

keil调试变量值被篡改问题

今天遇到一个代码中变量值被篡改的问题&#xff0c;某个数组的第一个值运行一段时间之后变成了0&#xff0c;如图&#xff1a; 看现象基本可以断定是内存越界导致的&#xff0c;但是要如果定位是哪里内存越界呢? keil提供了两个工具 1、set access breakpoint at(设置访问断点…

TensorFlow深度学习框架改进K-means聚类、SOM自组织映射算法及上海招生政策影响分析研究...

全文链接&#xff1a;https://tecdat.cn/?p37652 分析师&#xff1a;Chen Zhang 在教育政策研究领域&#xff0c;准确评估政策对不同区域和学生群体的影响至关重要。2021 年上海市出台的《上海市初中学业水平考试实施办法》对招生政策进行了调整&#xff0c;其中名额分配综合…

通过C# 裁剪PDF页面

在处理PDF文档时&#xff0c;有时需要精确地裁剪页面以适应特定需求&#xff0c;比如去除广告、背景信息或者仅仅是为了简化文档内容。 本文将指导如何使用免费.NET控件通过C#实现裁剪PDF页面。 免费库 Free Spire.PDF for .NET 支持在 .NET (C#, VB.NET, ASP.NET, .NET Core)…

java数据结构----图

图的存储结构: 代码实现 public class Graph {// 标记顶点数目private int V;// 标记边数目private int E;// 邻接表private Queue<Integer>[] adj;public Graph(int v) {V v;this.E 0;this.adj new Queue[v];for (int i 0; i < adj.length; i) {adj[i] new Queu…

使用阿里OCR身份证识别

1、开通服务 免费试用 2、获取accesskay AccessKeyId和AccessKeySecret 要同时复制保存下来 因为后面好像看不AccessKeySecret了 3.Api 参考 https://help.aliyun.com/zh/ocr/developer-reference/api-ocr-api-2021-07-07-recognizeidcard?spma2c4g.11186623.0.0.7a9f4b1e5C…

PHP及Java等其他语言转Go时选择GoFly快速快速开发框架指南

概要 经过一年多的发展GoFly快速开发框架已被一千多家科技企业或开发者用于项目开发&#xff0c;他的简单易学得到其他语言转Go首选框架。且企业版的发展为GoFly社区提供资金&#xff0c;这使得GoFly快速框架得到良好的发展&#xff0c;GoFly技术团队加大投入反哺科技企业和开…

红黑树的插入(NGINX源码)

下载并查看NGINX源码 访问NGINX下载页面&#xff0c;找到所需版本 https://nginx.org/en/download.html 使用wget下载源码包&#xff0c;替换版本号为所需版本 wget http://nginx.org/download/nginx-1.24.0.tar.gz解压源码包 tar -xzvf nginx-1.24.0.tar.gz进入解压后的目…

【算法题】64. 最小路径和-力扣(LeetCode)

【算法题】64. 最小路径和-力扣(LeetCode) 1.题目 下方是力扣官方题目的地址 64. 最小路径和 给定一个包含非负整数的 *m* x *n* 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 **说明&#xff1a;**每次只能向下或者…

Tiny Universe - Llama3架构

Llama3和Llama2和Qwen2的整体架构相似&#xff0c;本篇文章主要讲解它们的一些主要不同点。 关于Qwen2架构可参考 Qwen2架构 学习笔记 llama3区别于llama2在模型层面的区别主要体现在全模型使用GQA。 基础知识 MLP MLP&#xff08;Multi-Layer Perceptron&#xff09;多层感…

1 elasticsearch安装

【0】官网参考 https://www.elastic.co/guide/en/elasticsearch/reference/7.11/targz.html 【1】Centos7 下载安装 【1.1】下载 官网&#xff1a;Download Elasticsearch | Elastic 选择好自己想要的相关版本即可&#xff1b; 【2】Centos7.X 前置环境配置&#xff08;uli…

STM32MP157/linux驱动学习记录(二)

38.Linux INPUT 子系统实验 按键、鼠标、键盘、触摸屏等都属于输入(input)设备&#xff0c;Linux 内核为此专门做了一个叫做 input子系统的框架来处理输入事件。输入设备本质上还是字符设备&#xff0c;只是在此基础上套上了 input 框架&#xff0c;用户只需要负责上报输入事件…

vue使用vue-i18n实现国际化

我使用的是vue2.6版本&#xff0c;具体使用其他版本可以进行修改 一、安装 npm install vue-i18n -D 二、配置 1、文件配置 ①在src下创建 i18n 目录 ②在 i18n 目录下创建 langs 文件夹 和 index.js文件&#xff0c;具体如下 2、index.js代码如下&#xff0c;这里使用了…

[Python]一、Python基础编程

F:\BaiduNetdiskDownload\2023人工智能开发学习路线图\1、人工智能开发入门\1、零基础Python编程 1. Python简介 Python优点: 学习成本低开源适应人群广泛应用领域广泛1.1 Python解释器 下载地址:Download Python | Python.org 1.2 Python开发IDE -- Pycharm 2. 基础语法…

链表--(1)链表的概念

前言引入 之前我们学习了数组这一概念,使用数组可以在编程时增加程序的灵活性。但在c语言中不允许定义动态数组的类型也不能随意调整数组的大小,往往会导致内存空间的浪费。由此我们推出链表。链表是动态进行内存分配的一种结构,它可以随时为其结点分配需要的存储空间也方便…

CSS中的位置定位总结

文章目录 静态定位相对定位绝对定位固定定位 静态定位 静态定位(position:static)/默认的文档流布局 块级元素按照书写顺序从上往下依次排列行内/行内块元素按照书写顺序从左到右依次排列&#xff0c;一行放不下才换行文档流中的元素都是紧密排布的&#xff0c;没有大的空隙&…

windows查找端口号被占用

在很多开发的时候&#xff0c;可能端口号有被占用的情况&#xff0c;导致项目打不开。 用下面这个命令即可&#xff1a; 比如我的3000端口被占用&#xff0c;我找找哪个进程在占用我的3000端口号

数据结构:堆的算法

目录 一堆的向上调整算法二堆的向下调整算法三堆的应用:堆排序四TOPK问题 一堆的向上调整算法 我们在堆中插入一个数据一般实在堆的最后插入然后可以一步一步与上层结点&#xff08;父结点进行比较&#xff09;&#xff0c;继而进行交换&#xff0c;完成二叉树的结构&#xff0…

人工智能辅助汽车造型设计

随着科技的不断进步&#xff0c;人工智能&#xff08;AI&#xff09;在各个领域的应用越来越广泛&#xff0c;汽车设计行业也不例外。尤其在车辆外观造型设计中&#xff0c;AI正在成为设计师的重要助手&#xff0c;通过提供强大的工具和独特的创意方式&#xff0c;革新了传统设…