资源简介
【实验要求】
(1) 从键盘读入一组整数,按输入顺序形成顺序表。并将创建好的顺序表元素依次打印在屏幕上。
(2) 设计一个带选择菜单的主函数,菜单中具备任意选择删除、插入、查找数据元素的功能。
(3) 当选择删除功能时,从键盘读入欲删除的元素位置或元素值,按指定方式删除;当选择插入功能时,从键盘读入新元素值和被插入位置,在指定位置插入;当选择查找功能时,从键盘读入欲查找的元素值,返回其位置序号。
(4) 每种操作结束后,都能在屏幕上打印出此时顺序表元素的遍历结果。
代码片段和文件信息
#include “stdio.h“
#include “stdlib.h“
#define LISTSIZE 100
typedef int DataType;
typedef struct {
DataType items[LISTSIZE];
int length;
}SqList;
void Main_Chocie();
int InitList(SqList *L); /*顺序表初始化*/
int ListLength(SqList L); /*求顺序表表长*/
int ListEmpty(SqList L); /*判断空表*/
int ListInsert(SqList *L int position DataType item); /*顺序表的插入*/
int ListDelete_Pos(SqList *L int position DataType *item); /*顺序表的删除--位置*/
int ListDelete_Data(SqList *L int Data DataType item); /*顺序表的删除--元素*/
void Find(SqList L int Data_Value); /*顺序表的查找*/
int GetElem(SqList L int position DataType *item); /*顺序表的取值*/
int Traverse_List(SqList L); /*顺序表的遍历*/
int main(void)
{
int Choice i = 0 j position Data Flag = 0;
int Data_Value[LISTSIZE];
SqList L;
DataType item;
printf_s(“请输入要初始化后顺序表的值,表长最长为100,当输入完成后,按‘Enter‘键退出输入\n“);
while (i < LISTSIZE)
{
scanf_s(“%d“ &Data_Value[i++]);
if (getchar() == ‘\n‘)
break;
}
j = i;
InitList(&L);
for (i = 0; i < j; i++)
{
if (!ListInsert(&L i + 1 Data_Value[i]))
{
printf_s(“\n运行错误\n“);
}
}
printf_s(“\n建立顺序表成功\n“);
Traverse_List(L);
while (1)
{
Main_Chocie();
scanf_s(“%d“ &Choice);
switch (Choice)
{
case 1:
printf_s(“请输入要插入的位置和元素,例如输入(1 2)在第1个位置插入2:“);
scanf_s(“%d %d“ &position &Data);
Flag = ListInsert(&L position Data);
if (Flag == 1)
{
printf_s(“插入元素后的顺序表为:\n“);
Traverse_List(L);
}
break;
case 2:
printf_s(“请输入要删除的元素位置\n“);
scanf_s(“%d“ &position);
Flag = ListDelete_Pos(&L position &item);
if (Flag == 1)
{
printf_s(“\n删除的元素\t%d\n“ item);
printf_s(“\n删除后顺序表中的元素\n“);
Traverse_List(L);
}
break;
case 3:
printf_s(“请输入要删除的元素值\n“);
scanf_s(“%d“ &Data);
ListDelete_Data(&L Data item);
printf_s(“\n删除后顺序表中的元素\n“);
Traverse_List(L);
break;
case 4:
printf_s(“请输入要查找的元素值\n“);
scanf_s(“%d“ &Data);
Find(L Data);
printf_s(“\n此时顺序表中的元素\n“);
Traverse_List(L);
break;
case 5:
printf_s(“\n欢迎下次使用!谢谢!\n“);
return 0;
default:
printf_s(“\n\n输入错误!请重新输入\n\n“);
break;
}
}
}
/*顺序表初始化*/
int InitList(SqList *L)
{
L->length = 0;
return 1;
}
/*求顺序表表长*/
int ListLength(SqList L)
{
return L.length;
}
/*判断空表*/
int ListEmpty(SqList L)
{
if (L.length <= 0)
return 1;
else
return 0;
}
/*顺序表的插入*/
int ListInsert(SqList *L int position DataType item)
{
int i;
if (L->length >= LISTSIZE)
{
printf_s(“顺序表已满,无法进行插入操作!“);
return 0;
}
if (position <= 0 || positi
- 上一篇:vgg模型的复数域改进
- 下一篇:单链表的基本操作(实验)
相关资源
- 单链表的基本操作(实验)
- 算法导论第二十三章习题解答
- 果蝇算法论文
- 深度学习算法实践源码-吴岸城
- 基于OpenCV的分水岭算法实现
- K-means算法论文
- RFID防碰撞算法论文
- 数据挖掘18大算法实现以及其他相关经
- Introduction to Algorithms - A Creative Approa
- 基于决策树和朴素贝叶斯算法对Adul
- 数据结构第二版配套课件及答案
- 微电网PSO优化算法
- 暗原色单幅去雾改进算法
- 数据结构课设-模拟电梯
- 算法竞赛入门经典 第2版刘汝佳+高清
- 北大林宙辰:机器学习一阶算法的优
- 基于概率神经网络的图匹配算法研究
- 遗传算法论文11篇
- 德州扑克DeepStack算法.pdf
- ForceAtlas2图布局算法
- 基于遗传算法的立体车库车位调度研
- 稀疏表示SRC算法
- HMM算法第四种实现代码
- SM2国密算法实现基于mircal的实现
- 指数平滑算法
- 操作系统课程设计 银行家算法论文
- 电子科大2018肖鸣宇算法分析与设计真
- 算法导论(第2版)Introduction to Algor
- 物业费管理系统源码超详细注释附文
- 程序员的数学1+2+3 数学思维+概率统计
评论
共有 条评论