数据结构实验二 线性表顺序结构的删除、插入操作

简介: 数据结构实验二 线性表顺序结构的删除、插入操作

一、实验目的及其要求

使用C语言中的数组,实现线性表中的顺序结构存储的查找、删除、插入操作。

二、实验内容

(一)删除操作

1、初始线性表通过数组、循环、scanf语句实现输入任意个整数。

2、删除操作的实现,任意输入一个要删除的整数,找到这个元素,将此元素之后的所有元素逐个前移一位,实现删除操作。

3、要求以上2步操作可以重复执行。

4、例如:删除操作执行结果大致如下:

请任意输入整型一维数组:1,3,5,7,9,2,4,6,8,0

请输入要删除的值: 4

删除之后为:1,3,5,7,9,2,6,8,0

请输入要删除的值:3

删除之后为:1,5,7,9,2,6,8,0

请输入要删除的值:23

删除之后为:查无此数。

……(可以继续执行)

5、当线性表中的数据数量已被删除至零时提示“线性表已空”。

1. #include "stdio.h"
2. void main()
3. {
4.  int Len=10,d=1,p[Len];
5.     int i,j,l,n;
6.     printf("输入任意数组:");
7. for(i=0;i<Len;i++)
8.     {scanf("%d",&p[i]);}
9.     do
10.     {printf("输入删除的数:");
11.     scanf("%d",&n);
12. for(i=0;i<Len;i++)
13.     {if(n==p[i]) {j=i;d=0;}}
14. if(d==1)
15.     {printf("查无此数.\n");}
16. else
17.     {for(l=j;l<Len;l++) {p[l]=p[l+1];}
18.   for(i=0;i<Len-1;i++)
19.   {printf("%d ",p[i]);} Len--;}
20.     printf("\n");d=1;}
21.     while(Len!=0);
22.   printf("线性表已空。");
23. }
1. #include "stdio.h"
2. #define MAXSIZE 5
3. void main()
4. {int i,j,k,m,n,d=1;
5. typedef struct
6. {int p[MAXSIZE];int len;}sq;
7. sq s;
8.  for(k=0;k<MAXSIZE;k++)
9.     {if(s.p[i]!='\0'); s.len++;}
10.     printf("输入任意数组:");
11. for(i=0;i<s.len;i++)
12.     {scanf("%d",&s.p[i]);}
13.     do
14.     {printf("输入删除的数:");
15.     scanf("%d",&n);
16. for(i=0;i<s.len;i++)
17.     {if(n==s.p[i]) {j=i;d=0;}}
18. if(d==1)
19.     {printf("查无此数.\n");}
20. else
21.     {for(m=j;m<s.len;m++) {s.p[m]=s.p[m+1];}
22.   for(i=0;i<s.len-1;i++)
23.   {printf("%d ",s.p[i]);} s.len--;}
24.     printf("\n");d=1;}
25.     while(s.len!=0);
26.   printf("线性表已空。");
27. }

(二)线性表的插入操作

1. #include<stdio.h>
2. void main()
3. {
4.  int p[50],i,k,l,n;
5.  printf("原始线性表的长度为:"); 
6.  scanf("%d",&k);
7.  printf("输入该线性表:");
8.  for(i=1;i<=k;i++)
9.  {scanf("%d",&p[i]);}
10.   do{printf("要插入位置和数分别是:");
11.   scanf("%d %d",&l,&n);
12.   if(l<1||l>k){printf("位置错误.\n");}
13.   else
14.   {k++;for(i=k;i>=l;i--){p[i+1]=p[i];} 
15.   p[l]=n;
16.   for(i=1;i<=k;i++){printf("%d ",p[i]);}
17.   printf("\n");}}
18.   while(k<=10);
19. }
目录
相关文章
|
12天前
|
存储 搜索推荐 算法
【数据结构】树型结构详解 + 堆的实现(c语言)(附源码)
本文介绍了树和二叉树的基本概念及结构,重点讲解了堆这一重要的数据结构。堆是一种特殊的完全二叉树,常用于实现优先队列和高效的排序算法(如堆排序)。文章详细描述了堆的性质、存储方式及其实现方法,包括插入、删除和取堆顶数据等操作的具体实现。通过这些内容,读者可以全面了解堆的原理和应用。
54 16
|
1月前
|
存储 Java
数据结构第二篇【关于java线性表(顺序表)的基本操作】
数据结构第二篇【关于java线性表(顺序表)的基本操作】
30 6
|
15天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之王道第2.3章节之线性表精题汇总二(5)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
IKU达人之数据结构与算法系列学习×单双链表精题详解、数据结构、C++、排序算法、java 、动态规划 你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
1月前
|
存储
【数据结构】线性表和顺序表
【数据结构】线性表和顺序表
21 1
|
1月前
探索顺序结构:栈的实现方式
探索顺序结构:栈的实现方式
|
1月前
01(数据结构考研)线性表相关操作代码
01(数据结构考研)线性表相关操作代码
59 0
|
1月前
|
存储 算法
【数据结构】二叉树——顺序结构——堆及其实现
【数据结构】二叉树——顺序结构——堆及其实现
|
1月前
|
算法
计科一二班算法数据结构实验9答案
计科一二班算法数据结构实验9答案
14 0
|
1月前
|
存储 C语言
数据结构之线性表的初始化及其操作
数据结构之线性表的初始化及其操作
33 0
|
13天前
|
C语言
【数据结构】栈和队列(c语言实现)(附源码)
本文介绍了栈和队列两种数据结构。栈是一种只能在一端进行插入和删除操作的线性表,遵循“先进后出”原则;队列则在一端插入、另一端删除,遵循“先进先出”原则。文章详细讲解了栈和队列的结构定义、方法声明及实现,并提供了完整的代码示例。栈和队列在实际应用中非常广泛,如二叉树的层序遍历和快速排序的非递归实现等。
87 9

热门文章

最新文章