Problem C: 顺序表基本运算(线性表)

问题 C: 顺序表基本运算(线性表)

时间限制: 1 Sec  内存限制: 128 MB

Description

编写一个程序,实现顺序表的各种基本运算(假设顺序表的元素类型为char),主函数已给出,请补充每一种方法。

 

1、初始化顺序表L;

2、采用尾插法依次插入元素a,b,c,d,e;

3、输出顺序表L;

4、输出顺序表L的长度;

5、判断顺序表是否为空;

6、输出顺序表L的第三个元素;

7、输出元素a的位置;

8、在第四个元素位置插入元素f;

9、输出顺序表L;

10、删除L的第三个元素;

11、输出顺序表L;

12、释放顺序表L;

    

数据元素类型定义为

typedef char ElemType;

 

顺序表的定义为

typedef struct
{
    ElemType data[SizeMax];
    int length;
} SqList;
  
 

主函数:

int main()

{

    SqList *L;

    InitList(L);                            //初始化顺序表

    ElemType a,b,c,d,e;

    scanf("%c %c %c %c %c%*c",&a,&b,&c,&d,&e);

    Insert(L,a);

    Insert(L,b);

    Insert(L,c);

    Insert(L,d);

    Insert(L,e);                            //使用尾插法插入元素a,b,c,d,e

    Print(L);                               //输出顺序表

    PrintLength(L);                         //输出顺序表长度

    if(SqNull(L))

         printf("顺序表不为空\n");

    else printf("顺序表为空\n");            //判断顺序表是否为空

    PrintData(L,3);                         //输出第三个元素

    printf("元素a的位置:%d\n",Find(L,a));  //输出元素a的位置

    ElemType f;

    scanf("%c",&f);

    Insertinto(L,4,f);                      //将f插入到第四个位置

    Print(L);                               //输出顺序表

    Delete(L,3);                            //删除第三个元素

    Print(L);                               //输出顺序表

    free(L);                                //释放内存

    return 0;

}

Input

第一行输入五个元素a,b,c,d,e;接下来输入元素f;请根据题目编写算法。

Output

Sample Input

1 2 3 4 5
6

Sample Output

1 2 3 4 5
5
顺序表不为空
3
元素a的位置:1
1 2 3 6 4 5
1 2 6 4 5

提示

请使用C++编译并提交

#include <stdio.h>
#include <stdlib.h>
#define SizeMax 10
typedef char ElemType;
typedef struct
{ElemType data[SizeMax];int length;
} SqList;
void InitList(SqList *&L)
{L=(SqList*)malloc(sizeof(SqList));L->length=0;
}
void Insert(SqList *&L,ElemType n)
{L->data[L->length]=n;L->length++;
}
void Print(SqList *&L)
{int i;for(i=0;i<L->length-1;i++){printf("%c ",L->data[i]);}printf("%c\n",L->data[i]);
}
void PrintLength(SqList *&L)
{printf("%d\n",L->length);
}
bool SqNull(SqList *&L)
{if(L->length)return 1;return 0;
}
void PrintData(SqList *L,int n)
{if(L->length<n)return;printf("%c\n",L->data[n-1]);
}
int Find(SqList *L,ElemType a)
{for(int i=0;i<L->length;i++)if(L->data[i]==a)return i+1;return 0;
}
void Insertinto(SqList *&L,int n,ElemType f)
{for(int i=L->length;i>=n;i--)L->data[i]=L->data[i-1];L->data[n-1]=f;L->length++;
}
void Delete(SqList *&L,int n)
{for(int i=n-1;i<L->length;i++)L->data[i]=L->data[i+1];L->length--;
}
int main()
{SqList *L;InitList(L);                            //初始化顺序表ElemType a,b,c,d,e;scanf("%c %c %c %c %c%*c",&a,&b,&c,&d,&e);Insert(L,a);Insert(L,b);Insert(L,c);Insert(L,d);Insert(L,e);                            //使用尾插法插入元素a,b,c,d,ePrint(L);                               //输出顺序表PrintLength(L);                         //输出顺序表长度if(SqNull(L))printf("顺序表不为空\n");else printf("顺序表为空\n");            //判断顺序表是否为空PrintData(L,3);                         //输出第三个元素printf("元素a的位置:%d\n",Find(L,a));  //输出元素a的位置ElemType f;scanf("%c",&f);Insertinto(L,4,f);                      //将f插入到第四个位置Print(L);                               //输出顺序表Delete(L,3);                            //删除第三个元素Print(L);                               //输出顺序表free(L);                                //释放内存return 0;
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536214.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Problem D: 链表的基本运算(线性表)

Problem D: 链表的基本运算&#xff08;线性表&#xff09; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 18 Solved: 10Description 编写一个程序&#xff0c;实现链表的各种基本运算&#xff08;假设顺序表的元素类型为char&#xff09;&#xff0c;主函数已给出&#…

Problem B: 结构体---职工信息结构体

Problem B: 结构体---职工信息结构体 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 504 Solved: 306编写程序&#xff0c;定义一个存放职工信息的结构体类型&#xff0c;职工信息包括职工姓名、工作年限、工资总额。初始化5名职工的信息&#xff0c;对工作年限超过30年的…

Problem C: 结构体---点坐标结构体

Problem C: 结构体---点坐标结构体 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 663 Solved: 444[Submit][Status][Web Board]Description 定义一个表示点坐标的结构体&#xff0c;输入两个点的坐标&#xff0c;输出这两个点中点的坐标 Input 第一个点的坐标&#xff08…

Problem D: 编程题B-向量的数量积

Problem D: 编程题B-向量的数量积 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 164 Solved: 148Description 已知两个非零向量a&#xff08;x1&#xff0c;y1&#xff09;&#xff0c;b&#xff08;x2&#xff0c;y2&#xff09;&#xff0c;则有abx1x2y1y2&#xff0c;…

Problem E: 高于均分的学生

Problem E: 高于均分的学生 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 67 Solved: 45Description 输入n(<100)个学生的姓名、学号和成绩&#xff0c;将其中高于平均成绩的姓名、学号和成绩输出。 Input 第一行为学生人数 n 第二行到第n1行&#xff0c;每行一个学生…

Problem E: 建立链表(线性表)

Problem E: 建立链表(线性表) Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 323 Solved: 207Description &#xff08;线性表&#xff09;设键盘输入n个英语单词&#xff0c;输入格式为n, w1, w2, …,wn,其中n表示随后输入英语单词个数&#xff0c;试编一程序&#xff0c…

Problem A: 判断操作是否合法(栈和队列)

Problem A: 判断操作是否合法&#xff08;栈和队列&#xff09; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 67 Solved: 22Description 假设以I和O分别表示进栈和出栈操作&#xff0c;栈的初态和终态均为空&#xff0c;进栈和出栈的操作序列可表示为仅由I和O组成的序列…

Problem G: 函数---判断日期(年月日)是否合法

Problem G: 函数---判断日期&#xff08;年月日&#xff09;是否合法 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 566 Solved: 240Description 编写函数isValid_date&#xff0c;函数声明如下: int isValid_date(int year,int month,int day); //判断日期&#xff08;年…

Problem H: 今年第几天?

Problem H: 今年第几天&#xff1f; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 723 Solved: 310Description 定义一个函数&#xff0c;其参数为年、月、日的值&#xff0c;返回这一天为该年的第几天。要求在main函数中输入年月日&#xff0c;然后调用这个函数求值&…

Problem I: 函数---判断某年某月某日是这一年中的第几天

Problem I: 函数---判断某年某月某日是这一年中的第几天 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 457 Solved: 194Description 在主程序(main)中输入某年某月某日&#xff0c;例如2012 9 18(年月日之间用空格隔开)&#xff0c; 调用函数dayth来得到某年某月某日是这…

Problem C: 括号匹配(栈和队列)

Problem C: 括号匹配&#xff08;栈和队列&#xff09; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 76 Solved: 18[Submit][Status][Web Board]Description 假设一个表达式中只允许包含三种括号&#xff1a;圆括号“(”和“)”&#xff0c;方括号“[”和“]”和花括号“…

Problem D: 栈的基本运算(栈和队列)

Problem D: 栈的基本运算&#xff08;栈和队列&#xff09; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 43 Solved: 15[Submit][Status][Web Board]Description 编写一个程序&#xff0c;实现顺序栈的各种基本运算&#xff0c;主函数已给出&#xff0c;请补充每一种方法…

Problem B: C语言习题 矩阵元素变换

Problem B: C语言习题 矩阵元素变换 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 942 Solved: 558[Submit][Status][Web Board]Description 将一个nn(2<n<10,n为奇数)的矩阵中最大的元素放在中心&#xff0c;4个角分别放4个最小的元素&#xff08;按从左到右、从上…

Problem D: 删出多余的空格

Problem D: 删出多余的空格 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 667 Solved: 308[Submit][Status][Web Board]Description 小平在给弟弟检查英语作业时时&#xff0c;发现每个英语句子单词之间的空格个数不等&#xff0c;请你编程帮他把句子中多余的空格去掉&am…

Problem D: 顺序串的基本运算

Problem D: 顺序串的基本运算 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 73 Solved: 28[Submit][Status][Web Board]Description 编写一个程序&#xff0c;实现顺序串的各种基本运算&#xff0c;主函数已给出&#xff0c;请补充每一种方法。 1、建立串s"abcdefgh…

骨牌铺方格

骨牌铺方格 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 46495 Accepted Submission(s): 22470 Problem Description在2n的一个长方形方格中,用一个1 2的骨牌铺满方格,输入n ,输出铺放方案的总数.例如n3时…

递归思想完成n皇后问题

已经很长时间不敲代码了&#xff0c;感觉自己越来与颓废&#xff0c;所以现在又想做回一名苦逼的程序员&#xff0c;开启自己的代码之路。 我是根据视频敲的&#xff0c;没有题目&#xff0c;先看个四皇后问题吧。 所谓4皇后问题就是求解如何在44的棋盘上无冲突的摆放4个皇后棋…

POJ1163 数字三角形

1.题目信息&#xff08;http://poj.org/problem?id1163&#xff09; The TriangleTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 30397 Accepted: 17973 Description 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5(Figure 1) Figure 1 shows a number tri…

virtualbox的USB识别

VirtualBox识别USB教程 作者&#xff1a;Vincent June 13, 2017 在Virtualbox虚拟机配置面板中打开USB设备选项&#xff0c;分别勾选上“启动USB控制器”“启用usb2.0控制器”选项&#xff0c;如果有错误去https://www.virtualbox.org/wiki/Downloads 下载相应版本的插件包&a…

ubuntu实现简单的划词工具

ubuntu实现简单的划词工具 由于ubuntu下面没有比较好用的划词翻译工具&#xff0c;而且本人比较喜欢有道词典&#xff0c;虽然ubuntu下有deepin版本的有道词典包&#xff0c;可是总是会有bug&#xff0c;卡死等等。所以自己参考别人写了一个小工具&#xff0c;涉及shell和pyth…