【无标题】

【问题描述】取顺序表L中第 i个元素的值,存放在e中。。若这样的元素不存在,则返回值为false。

【输入形式】第1行顺序表的长度;第2行顺序表各数据元素;第3行为待取出元素位置。

【输出形式】若顺序表中存在第i个(逻辑位置)元素,则先输出顺序表和第i个被取出的元素,若无此位置;则分别输出顺序表、顺序表的表长、和The location does not exist。

【样例输入】

5

77 41 26 12 68

3

【样例输出】

77 41 26 12 68

26

#include <stdio.h>
#define MaxSize 50
typedef int ElemType;
typedef struct
{
    ElemType data[MaxSize];
    int length;
}SqList;
int Select(SqList L,int i)
{
    if(i>=1&&i<=L.length+1){
        return L.data[i-1];
    } else {
        return 0;
    }

}
void Print(SqList L)
{
    int i;
    for ( i = 0; i < L.length; i++) {
        printf("%d ",L.data[i]);
    }
    printf("\n");
}
int main() {
    SqList L;
    scanf("%d",&L.length);
    int i;
    for ( i = 0; i < L.length; i++) {
        scanf("%d",&L.data[i]);
    }
    int seq=0;
    scanf("%d",&seq);
    int ret=Select(L,seq);

    if(ret)
    {
        Print(L);
        printf("%d\n",ret);
    }else{
        Print(L);
        printf("%d\n",L.length);
        printf("The location does not exist");
    }
    return 0;
}

【问题描述】删除顺序表第i个位置(逻辑位序)的元素。若删除位置不合法,则返回false,输出"The delete location does not exist"和顺序表的表长。成功则输出删除后的新表和被删除元素。假设顺序表的元素为整型数据。

【输入形式】第1行顺序表的长度;第2行顺序表各数据元素;第3行为删除位置。

【输出形式】若顺序表删除成功,则先输出删除后的顺序表和被删除元素,删除失败则输出"The delete location does not exist"和顺序表的表长。

#include <stdio.h>
#define MaxSize 50
typedef int ElemType;
typedef struct
{
    ElemType data[MaxSize];
    int length;
}SqList;
bool Delete(SqList &L,int i,ElemType &e)
{
   if(i<1||i>L.length){
       return false;
   }
   e=L.data[i-1];
   int j;
    for ( j =i ; j <L.length;j++) {
        L.data[j-1]=L.data[j];
    }
    L.length--;
    return true;

}
void Print(SqList L)
{
    int i;
    for ( i = 0; i < L.length; i++) {
        printf("%d ",L.data[i]);
    }
    printf("\n");
}
int main() {
    SqList L;
    scanf("%d",&L.length);
    int i;
    for ( i = 0; i < L.length; i++) {
        scanf("%d",&L.data[i]);
    }
    int seq=0;
    scanf("%d",&seq);
    ElemType e;
    bool ret=Delete(L,seq,e);

    if(ret)
    {
        Print(L);
        printf("%d\n",e);
    }else{
        printf("The delete location does not exist\n");
        printf("%d",L.length);
    }
    return 0;
}

【问题描述】查找顺序表第i个位置(逻辑位序)插入新元素e。若插入位置不合法,则返回false,输出"The insertion position does not exist"和顺序表的表长。成功则输出插入后的新表。假设顺序表的元素为整型数据。

【输入形式】第1行顺序表的长度;第2行顺序表各数据元素;第3行为插入位置和插入元素。

【输出形式】若顺序表插入成功,则先输出插入后的顺序表,插入失败则输出"The insertion position does not exist"和顺序表的表长。

#include <stdio.h>
#define MaxSize 50
typedef int ElemType;
typedef struct
{
    ElemType data[MaxSize];
    int length;
}SqList;
bool Insert(SqList &L,int i,ElemType e)
{
   if(i<1||i>L.length){
       return false;
   }
   if(i==MaxSize)
   {
       return false;
   }
   int j;
    for ( j =L.length ; j >=i;j--) {
        L.data[j]=L.data[j-1];
    }
    L.data[i-1]=e;
    L.length++;
    return true;

}
void Print(SqList L)
{
    int i;
    for ( i = 0; i < L.length; i++) {
        printf("%d ",L.data[i]);
    }
    printf("\n");
}
int main() {
    SqList L;
    scanf("%d",&L.length);
    int i;
    for ( i = 0; i < L.length; i++) {
        scanf("%d",&L.data[i]);
    }
    int pos;
    ElemType e;
    scanf("%d%d",&pos,&e);
    bool ret=Insert(L,pos,e);

    if(ret)
    {
        Print(L);
    }else{
        printf("The insertion position does not exist\n");
        printf("%d",L.length);
    }
    return 0;
}

【问题描述】查找顺序表第1个值域与给定值e相等的元素的逻辑位序。若这样的元素不存在,则返回值为0。

【输入形式】第1行顺序表的长度;第2行顺序表各数据元素;第3行为待查找元素。

【输出形式】若顺序表中存在第1个值域与给定值e相等的元素,则先输出顺序表,再输出待查找元素的逻辑位序;若不存在则输出no

#include <stdio.h>
#define MaxSize 50
typedef int ElemType;
typedef struct
{
    ElemType data[MaxSize];
    int length;
}SqList;
int Select(SqList L,ElemType e)
{
    int i;
    for ( i = 0; i <L.length ; i++) {
        if(L.data[i]==e){
            return i+1;
        }
    }
        return 0;


}
void Print(SqList L)
{
    int i;
    for ( i = 0; i < L.length; i++) {
        printf("%d ",L.data[i]);
    }
    printf("\n");
}
int main() {
    SqList L;
    scanf("%d",&L.length);
    int i;
    for ( i = 0; i < L.length; i++) {
        scanf("%d",&L.data[i]);
    }
    ElemType e;
    scanf("%d",&e);
    int ret=Select(L,e);

    if(ret)
    {
        Print(L);
        printf("%d\n",ret);
    }else{
        printf("no");
    }
    return 0;
}
相关推荐
^^为欢几何^^1 分钟前
lodash中_.difference如何过滤数组
javascript·数据结构·算法
豆浩宇2 分钟前
Halcon OCR检测 免训练版
c++·人工智能·opencv·算法·计算机视觉·ocr
浅念同学17 分钟前
算法.图论-并查集上
java·算法·图论
何不遗憾呢26 分钟前
每日刷题(算法)
算法
立志成为coding大牛的菜鸟.30 分钟前
力扣1143-最长公共子序列(Java详细题解)
java·算法·leetcode
鱼跃鹰飞31 分钟前
Leetcode面试经典150题-130.被围绕的区域
java·算法·leetcode·面试·职场和发展·深度优先
liangbm337 分钟前
数学建模笔记——动态规划
笔记·python·算法·数学建模·动态规划·背包问题·优化问题
潮汐退涨月冷风霜42 分钟前
机器学习之非监督学习(四)K-means 聚类算法
学习·算法·机器学习
B站计算机毕业设计超人1 小时前
计算机毕业设计Python+Flask微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI
爬虫·python·深度学习·算法·机器学习·自然语言处理·数据可视化
羊小猪~~1 小时前
深度学习基础案例5--VGG16人脸识别(体验学习的痛苦与乐趣)
人工智能·python·深度学习·学习·算法·机器学习·cnn