关于静态线性表的操作实现。
本帖最后由 A学习的小菜鸟 于 2018-8-25 16:23 编辑1. 如果输入5个整数,打印出顺序表中的内容,并显示表中剩余的空间。
2. 在顺序表中的第3个位置插入元素0,打印出顺序表中的内容,并显示表中剩余的空间。
3. 当用户试图插入表中第11个位置时,程序会提示超出范围云云。
4. 删除表中第5个元素,打印出顺序表中的内容,并显示表中剩余的空间。
可以写出其代码:
#include <stdio.h>
#define MaxSize 10
// 函数功能:向顺序表中插入元素
// 参数Sqlist[]:顺序表
// 参数*len:顺序表的长度
// 参数i:插入元素的位置
// 参数x:待插入的元素值
void InsertElem( int Sqlist[], int *len, int i, int x)
{
int t;
if( *len==MaxSize || i<1 || i>*len+1 )
{
printf("输入非法!\n");
return;
}
// 查找待插入的位置
for( t=*len-1; t >= i-1; t-- )
{
Sqlist = Sqlist;
}
Sqlist = x; // 插入元素
*len = *len + 1; // 表长+1
}
// 函数功能:在顺序表中删除元素
// 参数Sqlist[]:顺序表
// 参数*len:顺序表的长度
// 参数i:删除元素的位置
void DelElem(int Sqlist[], int *len, int i)
{
int j;
if( i<1 || i>*len )
{
printf("输入非法!\n");
return;
}
// 将第i个元素之后的元素前移
for( j=i; j <= *len-1; j++ )
{
Sqlist = Sqlist;
}
*len -= 1; // 表长-1
}
int main()
{
int Sqlist;
int len;
int i;
// 测试要求一
printf("请输入五个整数:\n");
for( i=0; i < 5; i++ )
{
scanf("%d", &Sqlist);
}
len = i;
printf("表:");
for( i=0; i < len; i++ )
{
printf("%d ", Sqlist);
}
printf("\n剩余的空间是:%d\n\n", MaxSize - len);
// 测试要求二
printf("\n演示在第3个元素插入0");
InsertElem( Sqlist, &len, 3, 0 );
printf("表:");
for( i=0; i < len; i++ )
{
printf("%d ", Sqlist);
}
printf("\n剩余的空间是:%d\n\n", MaxSize - len);
// 测试要求三
printf("\n演示在第11个元素插入0");
InsertElem( Sqlist, &len, 11, 0 );
// 测试要求四
printf("\n演示删除第五个元素");
DelElem( Sqlist, &len, 5 );
printf("表:");
for( i=0; i < len; i++ )
{
printf("%d ", Sqlist);
}
printf("\n剩余的空间是:%d\n\n", MaxSize - len);
return 0;
}
线性表可以说是数据结构最重要的一个结构,希望可以能帮助大家理解线性表的实现,请给楼主点赞和爱心,再次感谢了。
感谢楼主分享
页:
[1]