吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2269|回复: 1
收起左侧

[C&C++ 转载] 关于静态线性表的操作实现。

[复制链接]
A学习的小菜鸟 发表于 2018-8-25 16:21
本帖最后由 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[t+1] = Sqlist[t];
    }

    Sqlist[i-1] = 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[j-1] = Sqlist[j];
    }

    *len -= 1;                // 表长-1
}

int main()
{
    int Sqlist[MaxSize];
    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;
}
线性表可以说是数据结构最重要的一个结构,希望可以能帮助大家理解线性表的实现,请给楼主点赞和爱心,再次感谢了。

求点赞和评分,谢谢了

求点赞和评分,谢谢了

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

东莞形象代言人 发表于 2018-8-25 17:42
感谢楼主分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 20:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表