资源简介

【实验要求】 (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

评论

共有 条评论