顺序表的基本操作:

1.顺序表-初始化
2.顺序表-获得元素
3.顺序表-查找元素
4.顺序表-插入元素
5.顺序表-删除元素

1.顺序表-初始化

#include<stdio.h>
#include<stdlib.h>
#define maxSize 100//顺序表的结构体定义
typedef struct
{int *data;  //存放顺序表元素的数组 int length; //存放顺序表的长度 }Sqlist;       //顺序表类型的定义 //初始化顺序表
Sqlist initList()
{   Sqlist L;L.data = (int*)malloc(maxSize*sizeof(int));L.length = 0; return L;}//展示表中数据
void display(Sqlist L)
{printf("表中的数据元素为:\n");for(int i=0;i<L.length;i++){printf("%d\t",L.data[i]);}printf("\n");
}int main()
{//用户自定义输入表中元素 Sqlist L = initList();int n;printf("请输入表的个数并且输入元素(用空格分开):"); scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&L.data[i]);L.length++;}//测试展示表中元素 display(L);
}

2.顺序表-获得元素

用 e 返回 L 中 p 位置上的元素,代码如下:

#include<stdio.h>
#include<stdlib.h>
#define maxSize 100//顺序表的结构体定义
typedef struct
{int *data;  //存放顺序表元素的数组 int length; //存放顺序表的长度 }Sqlist;       //顺序表类型的定义 //初始化顺序表
Sqlist initList()
{   Sqlist L;L.data = (int*)malloc(maxSize*sizeof(int));L.length = 0; return L;}//展示表中数据
void display(Sqlist L)
{printf("表中的数据元素为:\n");for(int i=0;i<L.length;i++){printf("%d\t",L.data[i]);}printf("\n");}//获得指定位置的元素,即用e返回L中p位置上的元素,获得成功则返回1,否则返回0.
int getElem(Sqlist L, int p, int &e)
{if (p<0||p>L.length-1)return 0;e = L.data[p];return 1;} int main()
{//用户自定义输入表中元素 Sqlist L = initList();int n;printf("请输入表的个数并且输入元素(用空格分开):"); scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&L.data[i]);L.length++;}//测试展示表中元素 display(L);//测试获得指定位置元素int p,e;printf("请输入要获得元素的下标:");scanf("%d",&p); int result = getElem(L,p,e);printf("%d\n",result);printf("这个位置的元素为:%d\n",e); }

3.顺序表-查找元素

在顺序表中查找第一个值等于 e 的元素,并返回其下标,代码如下:

#include<stdio.h>
#include<stdlib.h>
#define maxSize 100//顺序表的结构体定义
typedef struct
{int *data;  //存放顺序表元素的数组 int length; //存放顺序表的长度 }Sqlist;       //顺序表类型的定义 //初始化顺序表
Sqlist initList()
{   Sqlist L;L.data = (int*)malloc(maxSize*sizeof(int));L.length = 0; return L;}//展示表中数据
void display(Sqlist L)
{printf("表中的数据元素为:\n");for(int i=0;i<L.length;i++){printf("%d\t",L.data[i]);}printf("\n");}//查找第一个值等于e的元素
int findElem(Sqlist L, int e )
{int i;for(i=0;i<L.length;i++){if (e==L.data[i])return i;   //若找到,则返回下标 }return -1;          //没有找到,返回-1
}int main()
{//用户自定义输入表中元素 Sqlist L = initList();int n;printf("请输入表的个数并且输入元素(用空格分开):"); scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&L.data[i]);L.length++;}//测试展示表中元素 display(L);//测试查找元素 int e;printf("请输入要查找的元素");scanf("%d",&e);int result = findElem(L,e);printf("找到了与e相等的第一个元素的位置为%d\n",result);}

4.顺序表-插入元素

在顺序表 L 的第 p 个位置上插入新的元素 e ,如果 p 的输入不正确,则返回0,代表插入失败,如果 p 的输入正确,则将顺序表第 p 个元素及以后元素右移一个位置,腾出一个空位置插入新元素,顺序表长度增加1,插入操作成功,返回1。代码如下:

#include<stdio.h>
#include<stdlib.h>
#define maxSize 100//顺序表的结构体定义
typedef struct
{int *data;  //存放顺序表元素的数组 int length; //存放顺序表的长度 }Sqlist;       //顺序表类型的定义 //初始化顺序表
Sqlist initList()
{   Sqlist L;L.data = (int*)malloc(maxSize*sizeof(int));L.length = 0; return L;}//展示表中数据
void display(Sqlist L)
{printf("表中的数据元素为:\n");for(int i=0;i<L.length;i++){printf("%d\t",L.data[i]);}printf("\n");}//在顺序表的第p个位置上插入新的元素e。如果p输入不正确,返回0,p输入正确,插入成功,返回1。
int insertElem(Sqlist &L, int p, int e)
{int i;if(p<0||p>L.length||L.length==maxSize)return 0;for(i=L.length-1;i>=p;--i){L.data[i+1] = L.data[i];}L.data[p] = e;++L.length;return 1;} int main()
{//用户自定义输入表中元素 Sqlist L = initList();int n;printf("请输入表的个数并且输入元素(用空格分开):"); scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&L.data[i]);L.length++;}//测试展示表中元素 display(L);//测试插入元素 int p,e;printf("请输入要插入的位置:");scanf("%d",&p); printf("请输入要插入的元素:");scanf("%d",&e);int result = insertElem(L,p,e);printf("%d\n",result);//插入后展示表中元素 display(L);} 

5.顺序表-删除元素

删除顺序表 L 中下标为 p 的元素,成功返回1,否则返回0,并将被删除元素的值赋给e。

#include<stdio.h>
#include<stdlib.h>
#define maxSize 100//顺序表的结构体定义
typedef struct
{int *data;  //存放顺序表元素的数组 int length; //存放顺序表的长度 }Sqlist;       //顺序表类型的定义 //初始化顺序表
Sqlist initList()
{   Sqlist L;L.data = (int*)malloc(maxSize*sizeof(int));L.length = 0; return L;}//展示表中数据
void display(Sqlist L)
{printf("表中的数据元素为:\n");for(int i=0;i<L.length;i++){printf("%d\t",L.data[i]);}printf("\n");}//删除表L中下标为p的元素,成功返回1,否则返回0,并将被删除元素的值赋给e。
int deleteElem(Sqlist &L, int p, int &e)
{int i;if (p<0||p>L.length-1)return 0;e = L.data[p];for(i=p;i<L.length-1;++i){L.data[i] = L.data[i+1];}--L.length;return 1;} int main()
{//用户自定义输入表中元素 Sqlist L = initList();int n;printf("请输入表的个数并且输入元素(用空格分开):"); scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&L.data[i]);L.length++;}//测试展示表中元素 display(L);//测试删除表中元素int p,e;printf("请输入要删除元素的下标:");scanf("%d",&p); int result = deleteElem(L,p,e);printf("%d\n",result);printf("删除的元素为:%d\n",e); //删除后展示表中元素 display(L); }

数据结构-顺序表基本操作-C语言代码相关推荐

  1. 数据结构-顺序表基本操作(C语言实现)

    参考书:王道考研数据结构 //函数的声明 SqList InitList(l);                                    //初始化一个顺序表 void PrintfLi ...

  2. 顺序表基本操作算法——基础代码(C语言)

    创建一个顺序表(数据元素个数为5), 输出顺序表中的所有数据元素 查找第3个位置上的元素 查找元素15是否在顺序表中,如果在,请输出该元素在顺序表中的位置 在顺序表中的第1个位置插入数据0 删除刚刚插 ...

  3. 数据结构 - 线性表(顺序表)C语言代码实现-处理整型数据(附详细解释)。 _清风明月

    #include <stdio.h> #include <conio.h> //conio是Console Input / Output(控制台输入输出)的简写,其中定义了通过 ...

  4. 数据结构-单链表基本操作-C语言代码

    单链表基本操作 1.头插法建立单链表 2.尾插法建立单链表 3.查找结点 3.修改结点 4.插入结点 5.删除结点 本篇只有c语言代码,具体思路讲解请看这篇博客:数据结构-线性结构-单链表 1.头插法 ...

  5. 室友一把王者的时间我拿捏了数据结构——顺序表(C语言版)

    话不多说,先上整体动态顺序表实现的代码给大家 SeqList.h #include <stdio.h> //包含标准输入输出流的头文件 #include <assert.h> ...

  6. 数据结构-顺序表(C语言实现)

    主函数代码(main.c) #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include "sqlist.h&quo ...

  7. 数据结构严蔚敏C语言版—线性表顺序存储结构(顺序表)C语言实现相关代码

    数据结构严蔚敏C语言版-线性表顺序存储结构(顺序表)C语言实现相关代码 1.运行环境 2.准备工作 1)项目构建 1>新建一个SeqList项目 2>新建两个文件Sources和Heade ...

  8. rsa算法c语言实现_数据结构与算法之线性表-顺序表实现(C语言版本)

    原文托管在Github: https://github.com/shellhub/blog/issues/52 数据结构与算法之线性表-顺序表实现(C语言版本) 前言 数据结构与算法是一个程序员必备的 ...

  9. C语言链表的转置算法,c语言编程集 数据结构 顺序表 点链表 数制转换 矩阵转置.doc...

    c语言编程集 数据结构 顺序表 点链表 数制转换 矩阵转置 #include "stdio.h" #include "malloc.h" /*typedef s ...

  10. C语言/C++常见习题问答集锦[八十三]之数据结构顺序表(operand types are error: no match for “operator==“)

    C语言/C++常见习题问答集锦[八十三]之数据结构顺序表{operand types are error: no match for "operator=="} 程序之美 前言 主 ...

最新文章

  1. wangEditor 上传文件
  2. 讨论Markov Random Field和Gibbs Random Field心得
  3. java转账_使用Java模拟银行账户存、取款、转账功能
  4. 目前中关村在线上面的CPU排行情况
  5. WatiN-Html元素的操作
  6. java虚方法和抽象方法_虚方法和抽象方法--基础回顾
  7. jstl 获取 javascript 定义的变量_前端开发大牛完整总结出了JavaScript 难点 +最新web前端开发教程...
  8. 数据转移-从MySQL到Hive
  9. 1.1 为什么是 ML 策略
  10. 某互联网公司广告平台技术架构
  11. 优雅的closesocket
  12. android audiotrack mp3,播放mp3数据压缩由JLayer和Audiotrack latin mp3在android
  13. 模块化配电系统在高密度数据中心的应用
  14. java 导出Excel表头
  15. http://baiy.cn/doc/cpp/index.htm#代码风格与版式_函数
  16. 解决笔记本同时连接局域网和外网网络后上网很卡的问题
  17. Pytorch实现GAN之生成手写数字图片
  18. mysql中IFNULL,NULLIF,ISNULL函数的对比
  19. 移动机器人控制软件的设计与实现
  20. CSS 波浪效果动画 波浪起伏 水波动画 Pure CSS Wave 手把手教你用CSS做出波浪动画

热门文章

  1. 应用ruby打造个性化的有道单词本 (一)
  2. attr() 设置option默认选中无效
  3. PyQt5-Label背景颜色和文本颜色的设置
  4. load west0479 matlab,matlab矩阵详解 - Matlab 资料库 视频 教程 讲义 代码 - 数学建模社区-数学中国...
  5. Python基础语法题库
  6. 拦截器和过滤器的执行顺序和区别
  7. html页面到服务器上乱码,网页乱码问题
  8. 完全数(Perfect Number)
  9. 《CSS世界》学习感想(持续更新)
  10. 基于Vue实现魔方矩阵排列效果