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

#include <stdio.h>
#define MAXSIZE 100
typedef struct {int elem[MAXSIZE];int last;
} SeqList;
void InitList(SeqList*L) {L->last=-1;
}
void CreateList(SeqList*L,int n) {int i;printf("请输入%d个整数: ",n);for(i=0; i<n; i++)scanf("%d",&L->elem[i]);L->last=i-1;
}
int GetData(SeqList*L,int i,int*x) {if(i<1||i>L->last+1)return 0;else {*x=L->elem[i-1];return 1;}
}
int Locate(SeqList*L,int e) {int i=0;while(i<=L->last&&L->elem[i]!=e);i++;if(i>L->last)return 0;elsereturn i+1;
}
int InsList(SeqList*L,int i,int e) {int j;if(L->last>=MAXSIZE-1) {printf("顺序表已满");return -1;}if(i<1||i>L->last+2) {printf("插入位置出错");return 0;}for(j=L->last; j>=i-1; j--)L->elem[j+1]=L->elem[j];L->elem[i-1]=e;L->last++;return 1;
}int DelElem(SeqList*L,int i,int*e) {int j;if(L->last==-1) {printf("顺序表为空");return 0;}if(i<1||i>L->last+1) {printf("不存在第i个元素");return 0;}*e=L->elem[i-1];for(j=i; j<=L->last; j++)L->elem[j-1]=L->elem[j];L->last--;return 1;
}void DispList(SeqList*L) {int i;for(i=0; i<=L->last; i++)printf("%5d",L->elem[i]);
}int main() {SeqList L;int n,i,x,loc;printf("请输入建立线性表的个数: ");scanf("%d",&n);CreateList(&L,n);printf("建立的线性表为: ");DispList(&L);printf("请输入要查看表中位置: ");scanf("%d",&i);if(GetData(&L,i,&x))printf("当前线性表第%d个元素的值为:%d\n",i,x);elseprintf("输入的位置错误");printf("请输入要查找的元素值为:");scanf("%d",&x);loc=Locate(&L,x);if(loc)printf("查找元素值为%d的位置为:%d\n",x,loc);elseprintf("该表中无此元素");printf("请输入要插入的位置:");scanf("%d",&i);printf("请输入要插入的元素值:");scanf("%d",&x);if(InsList(&L,i,x)) {printf("已成功在第%d的位置上插入%d,插入后的线性表为:\n",i,x);DispList(&L);} elseprintf("输入插入的参数错误");printf("请输入要删除元素的位置:");scanf("%d",&i);if(DelElem(&L,i,&x)) {printf("已成功在第%d的位置上删除%d,删除后的线性表为:\n",i,x);DispList(&L);} elseprintf("\n输入删除的参数错误");
}

运行结果如下

顺序表基本操作算法——基础代码(C语言)相关推荐

  1. 顺序表的c语言结构体描述,顺序表的基本方法实现C语言版

    顺序表--------------线性表的第一个儿子 这个儿子的结构体定义: typedef int ElemType;//取别名 typedef struct link{ ElemType * he ...

  2. 顺序表基本操作<小白一听就懂!!!><超详细><接地气>

    顺序表基本操作<小白一听就懂!!!><超详细>&&<接地气> ***小编前言*** 完整代码 // 头文件 //主函数 // 初始化 /*运用指针* ...

  3. 数据结构线性表的逻辑结构(三)顺序表基本操作的实现

    一. 实验目的 1. 掌握线性表的逻辑结构: 2. 顺序表基本操作的实现: 3. 掌握利用C/C++编程语言实现数据结构的编程方法: 4. 通过上机时间加强利用数据结构解决实际应用问题的能力: 二.  ...

  4. 顺序表插入算法的时间复杂度以及顺序表常考问题

    插入算法的实现思路 假设我们要在第3个位置(i=3)上插入某一个数,顺序表初始化为P=(1,2,3,4,5,6).我们可以根据下面的图示理解整个算法过程. 需要注意的是,插入位置i是表示第几个位置而不 ...

  5. 【PTA】6-1 顺序表基本操作(10 分)

    题目来自 网络与信息安全-数据结构作业1-数据结构基本概念 6-1 https://fancyking.ml/archives/71 原题描述 6-1 顺序表基本操作(10 分) 本题要求实现顺序表元 ...

  6. 6-2 顺序表基本操作 (10 分)

    6-2 顺序表基本操作 (10 分) 本题要求实现顺序表元素的增.删.查找以及顺序表输出共4个基本操作函数. L是一个顺序表, 函数Status ListInsert_Sq(SqList &L ...

  7. 索引顺序表查找算法(分块查找)

    算法背景 有时候,可能会遇到这样的表:整个表中的元素未必有序,但若划分为若干块后,每一块中的所有元素均小于(或大于)其后面块中的所有元素.我们称这种为分块有序. 对于分块有序表的查找 首先,我们需要先 ...

  8. 6-2 顺序表基本操作 (10分)

    6-2 顺序表基本操作 (10分) 本题要求实现顺序表元素的增.删.查找以及顺序表输出共4个基本操作函数.L是一个顺序表,函数Status ListInsert_Sq(SqList &L, i ...

  9. python代码大全表解释-Python中顺序表的实现简单代码分享

    顺序表python版的实现(部分功能未实现) 结果展示: 代码示例: #!/usr/bin/env python # -*- coding:utf-8 -*- class SeqList(object ...

最新文章

  1. R语言使用ggplot2包的快速可视化函数qplot绘制散点图(添加平滑曲线与标准差带)实战
  2. [转]图片自动缩放 js图片缩放
  3. Python中lambda表达式的优缺点及使用场景
  4. scrapy 安装技巧
  5. go 原子操作 atomic
  6. H264视频通过RTMP直播
  7. c mysql ssh_c ssh mysql数据库
  8. 【转】PF_RING学习笔记
  9. 一种自动(半自动)学习的算法(验证码识别)
  10. 如何打开kernel最开始的打印
  11. 用简单 JS 实现代替 MYBATIS LOG PLUGIN 的功能
  12. JAVA Excel下载学习
  13. 结合公司业务后,对极光推送的进一步思考
  14. 标签类目体系(面向业务的数据资产设计方法论)-读书笔记5
  15. elas源码赏析(二)sobel算子3*3行列分解快速卷积
  16. FreeSwitch笔记
  17. java小球下落_java基础-小球下落问题
  18. 175个常用诗词语句出处
  19. 操作系统(2)复习 第八章 磁盘存储器的管理
  20. Win实用好用软件清单推荐

热门文章

  1. 实现平衡二叉树(AVL树)的旋转
  2. SQL函数和存储过程的区别
  3. libiconv-1.16编译
  4. windows使用psftp上传文件到linux服务器
  5. 【web3.js】如何在真实发送交易前取得交易hash
  6. 网页版扫雷游戏···
  7. C语言科学计数法E格式
  8. 学习笔记——从零开始学架构3.14
  9. 基于AT89C52单片机的万年历设计与仿真
  10. STM32 网页服务器 LWIP websever ajax实时刷新 (一)