返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >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://lsjlt.com/news/329328.html(转载时请注明来源链接)

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

猜你喜欢
  • C语言如何实现顺序表的插入删除
    本文小编为大家详细介绍“C语言如何实现顺序表的插入删除”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言如何实现顺序表的插入删除”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先声明一个顺序表的结构 (数组的...
    99+
    2023-06-30
  • C语言实现顺序表的插入删除
    目录一、初始化顺序表属性二、顺序表的插入三、删除 首先声明一个顺序表的结构 (数组的第一个元素是0,但是顺序表的第一个一般 从1(人为设定)开始) #include <...
    99+
    2024-04-02
  • C语言顺序表如何实现
    这篇文章主要讲解了“C语言顺序表如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言顺序表如何实现”吧!概念及结构顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般...
    99+
    2023-06-29
  • C语言线性顺序表如何实现
    这篇“C语言线性顺序表如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言线性顺序表如何实现”文章吧。线性表是最常用...
    99+
    2023-07-02
  • C语言中如何实现插入排序
    这篇文章主要讲解了“C语言中如何实现插入排序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中如何实现插入排序”吧!程序代码:#include <stdio.h>&...
    99+
    2023-06-16
  • C语言的顺序表怎么实现
    本文小编为大家详细介绍“C语言的顺序表怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言的顺序表怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.线性表线性表(linear list)是n个具...
    99+
    2023-06-30
  • C语言深入浅出讲解顺序表的实现
    目录1.线性表2.顺序表2.1 概念及结构2.2 提供接口2.3 接口实现今天起开始编写数据结构中的各种数据结构及算法的实现,说到顺序表,我们首先得了解下线性表。 1.线性表 线性表...
    99+
    2024-04-02
  • C语言顺序表如何使用
    本篇内容介绍了“C语言顺序表如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!编程环境为 ubuntu 18.04。顺序表需要连续一片存...
    99+
    2023-06-30
  • C语言线性表顺序表示及实现
    目录准备工作实现线性表线性表的动态分配顺序存储结构构造一个空的线性表对线性表进行赋值对线性表进行销毁对线性表进行重置判断线性表是否为空获取线性表的长度获取线性表某一位置对应的元素在线...
    99+
    2024-04-02
  • C语言二叉排序树的创建,插入和删除
    目录一、二叉排序树(二叉查找树)的概念二、二叉排序树的判别三、二叉排序树的创建(creat、insert)四、二叉排序树的插入五、二插排序树的删除六、完整代码(可以运行)总结一、二叉...
    99+
    2024-04-02
  • C语言顺序表的基本操作(初始化,插入,删除,查询,扩容,打印,清空等)
    目录顺序表的基本操作初始化清空打印扩容尾插法判空尾删法头插法头删法查询任意位置插入任意位置删除完整代码总结顺序表的基本操作 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性...
    99+
    2023-02-05
    C语言顺序表 顺序表初始化 顺序表的基本操作
  • C语言怎么实现顺序表的操作
    这篇文章主要介绍了C语言怎么实现顺序表的操作的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言怎么实现顺序表的操作文章都会有所收获,下面我们一起来看看吧。线性表线性表(linear list)是n个具有相同特...
    99+
    2023-06-30
  • C语言实现动态顺序表详解
    目录什么是顺序表?1. 定义顺序表结构体:2. 初始化顺序表:3. 销毁顺序表:4. 打印顺序表:5. 判断容量+扩容:6. 头插数据:7. 尾插数据:8. 指定下标位置插入...
    99+
    2024-04-02
  • C语言详解如何实现顺序栈
    目录顺序栈的定义顺序栈的理解准备工作具体实现今天说的是关于数据结构顺序栈的一些基本操作c语言实现。 顺序栈的定义 首先,我们先来简单了解一下顺序栈,前面线性表我们知道,根据顺序存储或...
    99+
    2024-04-02
  • C++ 实现单链表创建、插入和删除
    目录C++单链表创建、插入和删除1.头节点插入和删除结果2.中间节点插入和删除结果3.尾结点插入和删除结果C++单链表(带头结点)总结归纳代码实现C++单链表创建、插入和删除 这里仅...
    99+
    2024-04-02
  • C语言实现顺序表的全操作详解
    目录线性表顺序表顺序表接口实现1.顺序表初始化2.顺序表空间增容3.顺序表打印4.尾插数据5.尾删数据6.头插数据7.头删数据8.在pos下标处插入数据9.删除pos下标处数据10....
    99+
    2024-04-02
  • 怎么用C语言数组实现顺序表
    这篇文章主要讲解了“怎么用C语言数组实现顺序表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用C语言数组实现顺序表”吧!线性表和顺序表线性表线性表(linear list)是n个具有相同...
    99+
    2023-06-25
  • C语言如何实现顺序循环队列
    这篇文章将为大家详细讲解有关C语言如何实现顺序循环队列,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、队列和循环队列基本概念队列:和栈相反,队列是一种先进先出(FIFO)的线性表。只允许在一端插入,在另...
    99+
    2023-06-29
  • C语言实现动态顺序表的示例代码
    目录顺序表概念及结构基本操作功能实现程序运行顺序表概念及结构 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 分...
    99+
    2022-11-13
    C语言 动态顺序表 C语言 顺序表
  • C语言怎么实现顺序栈
    本篇内容主要讲解“C语言怎么实现顺序栈”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言怎么实现顺序栈”吧!顺序栈的定义首先,我们先来简单了解一下顺序栈,前面线性表我们知道,根据顺序存储或者链...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作