命名规范
1.下划线命名法list_insert 不同的单词用下划线连接
2.驼峰命名法ListInsert 每个单词首字母大写
一切数据结构考的都是增(插入)删查改
插入思路
1、判断插入位置是否合法 1<=i<=lenth
if(i<1||i>lenth)
{
return false;
}
2、判断储存空间是否已满(插入数据后是否超出MaxSize)
if(i>MaxSize)
{
return false;
}
3、插入操作
for (int j = L.lenth-1; j >= pos-1; j--)
{
L.data[j + 1] = L.data[j];//所有排在插入位置后的数据往后移一位
}
L.data[pos-1] = element;//插入数据
L.lenth++;//顺序表长度加一
完整代码
#include <stdio.h>//
//顺序表的初始化和插入
#define MaxSize 50 //定义最大存储量
typedef int elemtype;//定义顺序表数据类型,同时让顺序表存储其他数据类型时,方便代码修改
typedef struct {
elemtype data[MaxSize];
int lenth;//顺序表长度
}sqlist;//定义了一个"数据类型为sqlist"的顺序表
bool listInsert(sqlist&L, int pos, elemtype element)
{
//判断pos是否合法,pos是插入的位置
if (pos<1||pos>L.lenth)
{
return false;
}
if (pos > MaxSize)
{
return false;
}
else
{
for (int j = L.lenth-1; j >= pos-1; j--)
{
L.data[j + 1] = L.data[j];
}
L.data[pos-1] = element;
L.lenth++;
return true;
}
}
void PrintList(sqlist L)
{
for (int j = 0; j < L.lenth; j++)
{
printf("%10d", L.data[j]);
}
}
int main()
{
sqlist L;//定义了一个sqlist类型的变量L(顺序表)
bool ret;
L.data[0] = 1;
L.data[1] = 2;
L.data[2] = 3;//一共定义了三个元素
L.lenth = 3;//顺序表长度为3
ret = listInsert(L, 2, 60);
if (ret)
{
printf("插入成功\n");
PrintList(L);
}
else
{
printf("插入失败\n");
}
}
含输入输出
#include <stdio.h>//
//顺序表的初始化和插入
#define MaxSize 50 //定义最大存储量
typedef int elemtype;//定义顺序表数据类型,同时让顺序表存储其他数据类型时,方便代码修改
typedef struct {
elemtype data[MaxSize];
int lenth;//顺序表长度
}sqlist;//定义了一个"数据类型为sqlist"的顺序表
bool listInsert(sqlist& L, int pos, elemtype element)
{
//判断pos是否合法,pos是插入的位置
if (pos<1 || pos>L.lenth)
{
return false;
}
if (pos > MaxSize)
{
return false;
}
else
{
for (int j = L.lenth - 1; j >= pos - 1; j--)
{
L.data[j + 1] = L.data[j];
}
L.data[pos - 1] = element;
L.lenth++;
return true;
}
}
void PrintList(sqlist L)
{
for (int j = 0; j < L.lenth; j++)
{
printf("%4d", L.data[j]);
}
}
int main()
{
sqlist L;//定义了一个sqlist类型的变量L(顺序表)
bool ret;
printf("请输入插入元素个数:");
scanf("%d", &L.lenth);
printf("请输入一串顺序表:");
for (int i = 0; i < L.lenth; i++)
{
scanf("%d", &L.data[i]);
}
printf("请输入要插入的位置和元素:");
int p,e;
scanf("%d%d", &p, &e);
ret = listInsert(L, p, e);
if (ret)
{
printf("插入成功\n");
PrintList(L);
}
else
{
printf("插入失败\n");
}
}
删除操作
#include <stdio.h>//
//顺序表删除
#define MaxSize 50 //定义最大存储量
typedef int elemtype;//定义顺序表数据类型,同时让顺序表存储其他数据类型时,方便代码修改
typedef struct {
elemtype data[MaxSize];
int lenth;//顺序表长度
}sqlist;//定义了一个"数据类型为sqlist"的顺序表
bool listInsert(sqlist& L, int pos)
{
//判断pos是否合法,pos是删除元素的位置
if (pos<1 || pos>L.lenth)
{
return false;
}
if (pos > MaxSize)
{
return false;
}
else
{
for (int j = pos; j<L.lenth; j++)
{
L.data[j-1] = L.data[j];
}
L.lenth--;
return true;
}
}
void PrintList(sqlist L)
{
for (int j = 0; j < L.lenth; j++)
{
printf("%4d", L.data[j]);
}
}
int main()
{
sqlist L;//定义了一个sqlist类型的变量L(顺序表)
bool ret;
printf("请输入插入元素个数:");
scanf("%d", &L.lenth);
printf("请输入一串顺序表:");
for (int i = 0; i < L.lenth; i++)
{
scanf("%d", &L.data[i]);
}
printf("请输入要删除的元素位置:");
int p;
scanf("%d", &p);
ret = listInsert(L, p);
if (ret)
{
printf("删除成功\n");
PrintList(L);
}
else
{
printf("删除失败!\n");
}
}
标签:初始化,10.3,顺序,int,pos,笔记,lenth,sqlist,data
From: https://www.cnblogs.com/gqy9521/p/18175294