宜昌制作网站公司,河北邯郸区号,深圳专业网站建设公,网站留言发送到qq邮箱目录
3.操作顺序表
1.分析中间插入函数
函数的参数
代码示例
图片分析
main.c部分改为
在SeqList.h添加SLInsert函数的声明
运行结果
2.分析中间删除函数
函数的参数
代码示例
图片分析
main.c部分改为
在SeqList.h添加SLErase函数的声明
运行结果 承接84.【C语…目录
3.操作顺序表
1.分析中间插入函数
函数的参数
代码示例
图片分析
main.c部分改为
在SeqList.h添加SLInsert函数的声明
运行结果
2.分析中间删除函数
函数的参数
代码示例
图片分析
main.c部分改为
在SeqList.h添加SLErase函数的声明
运行结果 承接84.【C语言】数据结构之顺序表的头部插入和删除文章
3.操作顺序表
1.分析中间插入函数
函数的参数
中间的位置:结构体指针SL* ps(这样就可以使用ps-a[...])和插入的位置int pos
插入的元素数据:SLDataType x
代码示例
void SLInsert(SL* ps, int pos, SLDataType x)
{assert(ps);//pos0为头插,posps-size为尾插assert(pos 0 pos ps-size);SLCheckCapacity(ps);int end ps-size - 1;while (pos end){ps-a[end 1] ps-a[end];end--;}ps-a[pos] x;//在a[pos]处插入新元素ps-size;
}图片分析 main.c部分改为
void TestSeqList1()
{SL s;SLInit(s);SLPushBack(s, 1);SLPushBack(s, 2);SLPushBack(s, 3);SLPushBack(s, 4);SLPushBack(s, 5);SLPrint(s);SLInsert(s,1,6);SLPrint(s);SLDestory(s);
}
在SeqList.h添加SLInsert函数的声明
运行结果
在中间插入了一个6 有了SLInsert函数可以对84.【C语言】数据结构之顺序表的头部插入和删除文章的SLPushFront函数做简化
void SLPushFront(SL* ps,SLDataType x)
{assert(ps);SLCheckCapacity(ps);SLInsert(ps, 0, x);
}同理对SLPushBack函数
void SLPushBack(SL* ps, SLDataType x)
{assert(ps);SLCheckCapacity(ps);SLInsert(ps, ps-size, x);
}
2.分析中间删除函数
函数的参数
同中间插入函数
代码示例
void SLErase(SL* ps, int pos)
{assert(ps);assert(0 pos pos ps-size);int begin pos 1;while (begin ps-size){ps-a[begin - 1] ps-a[begin];begin;}ps-size--;//ps-size不用单独检查是否为负//在assert断言中,已经交代了pos ps-size,pos不可能为负
}图片分析 main.c部分改为
void TestSeqList1()
{SL s;SLInit(s);SLPushBack(s, 1);SLPushBack(s, 2);SLPushBack(s, 3);SLPushBack(s, 4);SLPushBack(s, 5);SLPrint(s);SLErase(s,1);SLPrint(s);SLDestory(s);
}在SeqList.h添加SLErase函数的声明
运行结果 有了SLErase函数可以对84.【C语言】数据结构之顺序表的头部插入和删除文章的SLPopFront函数做简化
void SLPopFront(SL * ps)
{SLErase(ps, 0);
}同理对SLPopBack函数
void SLPopBack(SL* ps)
{SLErase(ps, ps-size - 1);
}3.分析遍历查找函数
代码示例
int SLFind(SL* ps, SLDataType find)
{assert(ps);for (int i 0; i ps-size; i){if (ps-a[i] find)return find;}//遍历查找return -1;//查不到则返回-1
}
在SeqList.h添加SLFind函数的声明