当前位置:网站首页>顺序表课设
顺序表课设
2022-06-23 07:30:00 【石先森很疯狂】
实验目的:
掌握线性表的基本操作:插入、删除、查找在顺序存储结构上的实现。
实验条件:
VC++6.0,计算机一台
内容:
建立一有序的顺序表,并实现下列操作:
- 1.把元素x插入表中并保持有序;
- 2.查找值为x的元素,若找到将其删除;
- 3.输出表中各元素的值。
算法思想:
/*建立一有序的顺序表,并实现下列操作: C语言描述 1.把元素x插入表中并保持有序; 2.查找值为x的元素,若找到将其删除; 3.输出表中各元素的值。*/
#include <stdio.h>
#define MAXSIZE 20
//建立顺序表结构体
typedef struct seqlist
{
int elem[MAXSIZE];
int length;
}SeqList;
//初始化顺序表
void IniList(SeqList *l)
{
l->length = 0;
}
//将元素插入表中并保持有序
void InsList(SeqList *l, int n)
{
int i = 0, j;
while (n > l->elem[i] && i < l->length)
i++;
for (j = l->length - 1; j >= i; j--)
l->elem[j+1] = l->elem[j];
l->elem[i] = n;
(l->length)++;
}
//查找某元素是否在表中
int CheckList (SeqList l, int n)
{
int i = 0;
while (i < l.length && n != l.elem[i])
i++;
if (i < l.length)
return i;
return -1;
}
//查找并删除某个元素
void DelList (SeqList *l, int n)
{
int j;
if (n < 0 || n > l->length - 1)
{
printf ("空!请检查该值是否在顺序表内!\n");
return ;
}
for (j = n + 1; j < l->length; j++)
l->elem[j-1] = l->elem[j];
(l->length)--;
}
//输出表中各元素
void PrintList(SeqList l)
{
int i;
for (i = 0; i < l.length; i++)
{
printf ("%d ", l.elem[i]);
}
printf ("\n");
}
int main ()
{
SeqList list;
int index, element;
IniList(&list); //初始化
printf ("请输入第一个元素: "); //输入元素
scanf ("%d", &element);
printf ("请输入其他元素(以0结尾): ");
while (0 != element)
{
InsList(&list, element); //插入元素
scanf ("%d", &element);
}
PrintList(list); //列表输出元素
printf ("请输入要删除的元素: ");
scanf ("%d", &element);
index = CheckList(list, element); //查找元素
if (-1 == index)
{
printf ("%d 不在该顺序表中 \n", element);
}
else
DelList(&list, index); //若找到,则删除元素
PrintList(list); //再次列表输出各个元素
return 0;
}
边栏推荐
- Quick sort + bubble sort + insert sort + select sort
- [kubernetes] download address of the latest version of each major version of kubernetes
- 2.概率论-概率论公理
- QT reading XML files using qdomdocument
- Matlab随机波动率SV、GARCH用MCMC马尔可夫链蒙特卡罗方法分析汇率时间序列
- What is edge cloud?
- Unity to wechat applet games
- HCIP之路第八次实验
- 数学知识:快速幂求逆元—快速幂
- How do I install MySQL on my computer?
猜你喜欢

vtk. JS left mouse button sliding to change window level and window width

Learn to draw Er graph in an article
![[深度学习][原创]如何不用yolov5权重或者模型进行目标检测和绘制map等参数图](/img/f3/ff14cb5439a24e26f977e5f0d15785.png)
[深度学习][原创]如何不用yolov5权重或者模型进行目标检测和绘制map等参数图

浅谈ThreadLocal和InheritableThreadLocal,源码解析

Design of temperature detection and alarm system based on 51 single chip microcomputer

HCIP之路第八次实验

GIF验证码分析

HCIP之路

AVL树的实现

利用for循环输出一个字母三角形
随机推荐
一秒钟查看一次文件,并将文件最后一行内容结果发送至syslog服务器
openni. utils. OpenNIError: (OniStatus.ONI_STATUS_ERROR, b‘DeviceOpen using default: no devices found‘
快速排序 + 冒泡排序 + 插入排序 + 选择排序
SQL注入常用到的绕过方式-ctf
转盘式视觉筛选机及其图像识别系统
浅谈ThreadLocal和InheritableThreadLocal,源码解析
深度学习------不同方法实现lenet-5模型
vtk.js鼠標左鍵滑動改變窗比特和窗寬
three. Solution to stripe shadow and grid shadow in JS
华为云服务器弹性公网IP无法ping
socket编程——select模型
套接字socket编程
抓包发现tcp会话中老是出现重复的ack和大量的tcp重传——SACK(Selective Acknowledgment, 选择性确认)技术
VTK. Le bouton gauche de la souris JS glisse pour changer le niveau et la largeur de la fenêtre
帆软堆积图显示占比
unity 音频可视化方案
Apache Solr 任意文件读取复现
聊聊服务治理中的路由设计
在kubernetes中部署kubersphere
TCP fastopen is used inside the origin server to quickly return to the source