iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言如何实现顺序表的插入删除
  • 236
分享到

C语言如何实现顺序表的插入删除

2023-06-30 13:06:38 236人浏览 薄情痞子
摘要

本文小编为大家详细介绍“C语言如何实现顺序表的插入删除”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言如何实现顺序表的插入删除”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先声明一个顺序表的结构 (数组的

本文小编为大家详细介绍“C语言如何实现顺序表的插入删除”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言如何实现顺序表的插入删除”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

首先声明一个顺序表的结构 (数组的第一个元素是0,但是顺序表的第一个一般 从1(人为设定)开始)

#include <stdio.h>#include <stdlib.h> #define MAXSIZE 10#define OK  1#define FALSE 0  typedef int Elemtype;typedef bool Status; typedef struct list{Elemtype *elem;int len;        //数据个数int listsize;   //顺序表长度}List;
  • listsize 代表这个顺序表的最大容量,可以随时扩容

  • len 代表在你创建的这个顺序表中有几个有效的数据,总是小于等于listsize

C语言如何实现顺序表的插入删除

一、初始化顺序表属性

void list_init(List *L){L->elem=(Elemtype *)malloc(MAXSIZE*sizeof(Elemtype));//开辟空间if(L->elem==NULL)//判断空间是否开辟成功{printf("malloc fail\n");exit(0);} L->len=0;//初始化数据有效数据为0L->listsize=MAXSIZE;//初始化数组长度为MAXSIZE}

二、顺序表的插入

Status list_insert(List *L,int i,Elemtype data){Elemtype *base,*insert,*p;if(i<1 || i>L->len+1 || L==NULL){printf("位置输入错误\n");return FALSE;}if(L->len > L->listsize){base=(Elemtype *)realloc(L->elem,(L->listsize+MAXSIZE)*sizeof(Elemtype));//动态扩容L->elem=base;L->listsize+=MAXSIZE;//更新顺序表大小}insert=&(L->elem[i-1]);//目标指针指向要插入的目标地址  //指向最后一个元素的地址for(p=L->elem + L->len-1;p>=insert;p--){*(p+1)=*p;}*insert=data;L->len++;return OK;}

C语言如何实现顺序表的插入删除

三、删除 

Status delete_list(List *L,int i){ElemType *q,*delete_i;if(L==NULL||i<0||i>L->len)return FALSE;delete_i=&(L->elem[i-1]);//用指针指向要删除位置的地址q=L->elem + L->len-1;    //q指针指向顺序表最后一个位置的地址   首地址加上数组长度就是最后一个元素地址for(delete_i=delete_i+1;delete_i<=q;++delete_i)//从删除位置的地址的下一个元素开始,每个往前移动一位{*(delete_i-1)=*delete_i;//前一个位置等于后一个}L->len--;return OK;}

C语言如何实现顺序表的插入删除

全部程序

#include <stdio.h>#include <stdlib.h> #define MAXSIZE 10#define OK  1#define FALSE 0  typedef int Elemtype;typedef bool Status; typedef struct list{Elemtype *elem;int len;int listsize;}List;  void list_init(List *L){L->elem=(Elemtype *)malloc(MAXSIZE*sizeof(Elemtype));//开辟空间if(L->elem==NULL)//判断空间是否开辟成功{printf("malloc fail\n");exit(0);} L->len=0;//初始化数据有效数据为0L->listsize=MAXSIZE;//初始化数组长度为MAXSIZE} Status list_insert(List *L,int i,Elemtype data){Elemtype *base,*insert,*p;if(i<1 || i>L->len+1 || L==NULL){printf("位置输入错误\n");return FALSE;}if(L->len > L->listsize){base=(Elemtype *)realloc(L->elem,(L->listsize+MAXSIZE)*sizeof(Elemtype));L->elem=base;L->listsize+=MAXSIZE;}insert=&(L->elem[i-1]);//目标指针指向要插入的目标地址  //指向最后一个元素的地址for(p=L->elem + L->len-1;p>=insert;p--){*(p+1)=*p;}*insert=data;L->len++;return OK;} Status list_delete(List *L,int i){Elemtype *aim,*p;if(i<0 || i>L->len){printf("位置输入错误\n");return FALSE;}aim=&(L->elem[i-1]);//目标指针指向要删除的目标地址p=(L->elem+L->len-1); //指向最后一个元素的地址for(aim=aim+1;aim<=p;++aim) //目标地址滑动删除{*(aim-1)=*aim;}L->len--;return OK;}void show_list(List *L){int i;for(i=0;i<L->len;i++){printf("elem[%d]=%d\n",i+1,L->elem[i]);}printf("\n");}int main(){int i;List L;list_init(&L);for(i=0;i<10;i++){list_insert(&L,i+1,i+1);}printf("插入前的顺序表\n");show_list(&L); printf("插入后的顺序表  在5位置插入99\n");list_insert(&L,5,99);show_list(&L); printf("删除后的顺序表  把5位置删除\n");list_delete(&L,5);show_list(&L);return 0;}

运行结果如下

C语言如何实现顺序表的插入删除

读到这里,这篇“C语言如何实现顺序表的插入删除”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网其他教程频道。

--结束END--

本文标题: C语言如何实现顺序表的插入删除

本文链接: https://www.lsjlt.com/news/329328.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言实现顺序表的插入删除
    目录一、初始化顺序表属性二、顺序表的插入三、删除 首先声明一个顺序表的结构 (数组的第一个元素是0,但是顺序表的第一个一般 从1(人为设定)开始) #include <...
    99+
    2022-11-13
  • C语言如何实现顺序表的插入删除
    本文小编为大家详细介绍“C语言如何实现顺序表的插入删除”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言如何实现顺序表的插入删除”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先声明一个顺序表的结构 (数组的...
    99+
    2023-06-30
  • C语言顺序表如何实现
    这篇文章主要讲解了“C语言顺序表如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言顺序表如何实现”吧!概念及结构顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般...
    99+
    2023-06-29
  • C语言线性顺序表如何实现
    这篇“C语言线性顺序表如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言线性顺序表如何实现”文章吧。线性表是最常用...
    99+
    2023-07-02
  • C语言的顺序表怎么实现
    本文小编为大家详细介绍“C语言的顺序表怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言的顺序表怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.线性表线性表(linear list)是n个具...
    99+
    2023-06-30
  • C语言深入浅出讲解顺序表的实现
    目录1.线性表2.顺序表2.1 概念及结构2.2 提供接口2.3 接口实现今天起开始编写数据结构中的各种数据结构及算法的实现,说到顺序表,我们首先得了解下线性表。 1.线性表 线性表...
    99+
    2022-11-13
  • C语言顺序表的基本操作(初始化,插入,删除,查询,扩容,打印,清空等)
    目录顺序表的基本操作初始化清空打印扩容尾插法判空尾删法头插法头删法查询任意位置插入任意位置删除完整代码总结顺序表的基本操作 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性...
    99+
    2023-02-05
    C语言顺序表 顺序表初始化 顺序表的基本操作
  • C语言二叉排序树的创建,插入和删除
    目录一、二叉排序树(二叉查找树)的概念二、二叉排序树的判别三、二叉排序树的创建(creat、insert)四、二叉排序树的插入五、二插排序树的删除六、完整代码(可以运行)总结一、二叉...
    99+
    2022-11-12
  • C语言中如何实现插入排序
    这篇文章主要讲解了“C语言中如何实现插入排序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中如何实现插入排序”吧!程序代码:#include <stdio.h>&...
    99+
    2023-06-16
  • C语言怎么实现顺序表的操作
    这篇文章主要介绍了C语言怎么实现顺序表的操作的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言怎么实现顺序表的操作文章都会有所收获,下面我们一起来看看吧。线性表线性表(linear list)是n个具有相同特...
    99+
    2023-06-30
  • C语言实现顺序表的全操作详解
    目录线性表顺序表顺序表接口实现1.顺序表初始化2.顺序表空间增容3.顺序表打印4.尾插数据5.尾删数据6.头插数据7.头删数据8.在pos下标处插入数据9.删除pos下标处数据10....
    99+
    2022-11-13
  • C语言详解如何实现顺序栈
    目录顺序栈的定义顺序栈的理解准备工作具体实现今天说的是关于数据结构顺序栈的一些基本操作c语言实现。 顺序栈的定义 首先,我们先来简单了解一下顺序栈,前面线性表我们知道,根据顺序存储或...
    99+
    2022-11-13
  • C语言实现动态顺序表的示例代码
    目录顺序表概念及结构基本操作功能实现程序运行顺序表概念及结构 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 分...
    99+
    2022-11-13
    C语言 动态顺序表 C语言 顺序表
  • C语言数据结构顺序表中的增删改(尾插尾删)教程示例详解
    目录初始化尾插格局打开尾删初始化 在初步认识顺序表这一结构后,我们就可以继续深入探究这是我之前在.h文件中创建的结构体 typedef int type; typedef struc...
    99+
    2022-11-13
  • C语言数据结构顺序表中的增删改(头插头删)教程示例详解
    目录头插操作头删操作小结头插操作 继上一章内容(C语言数据结构顺序表中的增删改教程示例详解),继续讲讲顺序表的基础操作。 和尾插不一样,尾插出手阔绰直接的开空间,咱头插能开吗?好像没...
    99+
    2022-11-13
  • C语言如何实现顺序循环队列
    这篇文章将为大家详细讲解有关C语言如何实现顺序循环队列,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、队列和循环队列基本概念队列:和栈相反,队列是一种先进先出(FIFO)的线性表。只允许在一端插入,在另...
    99+
    2023-06-29
  • C语言中如何实现单链表删除指定结点
    目录单链表删除指定结点链表的删除结点(各种方法)链表中删除第i个结点删除与链表中与a相同的结点删除链表中重复元素单链表删除指定结点 在单链表中删除指定的结点。这里单链表是用尾插法建立...
    99+
    2022-11-13
  • 新手向超详细的C语言实现动态顺序表
    目录一、各个函数接口的实现 1.1 不太好‘'李姐‘'的“容量检测函数” 1.2 在任意位置插入的函数"坑!" 1.3 在任意位置删除数据的函数 1.4 其余简单的接口函数 二、顺序...
    99+
    2022-11-12
  • C语言实现顺序表的基本操作的示例详解
    目录一、认识顺序表1.线性表2.顺序表的概念及结构二、顺序表的基本操作(接口实现)1.初始化顺序表2.打印顺序表3.尾插4.尾删5.扩容6.头插7.头删8.任意位置插入9.任意位置删...
    99+
    2022-11-13
    C语言顺序表基本操作 C语言顺序表操作 C语言顺序表
  • C语言实现串的顺序存储表示与基本操作
    本文实例为大家分享了C语言实现串的顺序存储表示与基本操作代码,供大家参考,具体内容如下 1、串的三种存储表示 串,即:字符串。要注意的是,C语言中是没有字符串数据类型的,而将其作为一...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作