/*************************************************************************************/
/*   顺序表基本操作函数
/*------------------------------------------------------------------------------------------------------------------------------
/*  
/* Date: 2016年10月14日
/* Auther:vensontao
/************************************************************************************/

#include <stdio.h>
#include <malloc.h>

#define MaxSize 50

typedef char ElemType;

//--------------------------------------------------------
// 顺序表的类型定义
//--------------------------------------------------------
typedef struct 
{
     ElemType data[MaxSize];  // 存放顺序表元素
    int length;                        // 存放顺序表的长度
} SqList;

//========================================================
// 建立顺序表
//========================================================
void CreateList(SqList *&L, ElemType a[], int n)
{
     int i;
     for (i=0;i<n;i++)
          L->data[i]=a[i];
     L->length=n;
}

//========================================================
// 初始化顺序表
//========================================================
void InitList(SqList *&L)
{
    L=(SqList *)malloc(sizeof(SqList)); /*分配存放线性表的空间,并将地址初始化为0*/
    L->length=0;
}

//========================================================
// 销毁顺序表
//========================================================
void DestroyList(SqList *&L)
{
    free(L);
}

//========================================================
// 判断顺序表是否为空
//========================================================
int ListEmpty(SqList *L)
{
    return (L->length==0);
}

//========================================================
// 求顺序表的长度
//========================================================
int ListLength(SqList *L)
{
    return (L->length);
}

//========================================================
// 输出顺序表元素
//========================================================
void DispList(SqList *L)
{
    int i;
    if (ListEmpty(L)) 
         return;
    for (i=0;i<L->length;i++)
         printf("%c ",L->data[i]);
    printf("\n");
}

//========================================================
// 求顺序表中某个元素的值
//========================================================
int GetElem(SqList *L,int i,ElemType &e)
{
    if (i<1 || i>L->length)
       return 0;
    e=L->data[i-1];
    return 1;
}

//========================================================
// 求顺序表中某个元素的位置
//========================================================
int LocateElem(SqList *L, ElemType e)
{
  int i=0;
  while (i<L->length && L->data[i]!=e) 
    i++;
  if (i>=L->length)
    return 0;
  else
    return i+1;
}

//========================================================
// 向顺序表指定位置插入元素
//========================================================
int ListInsert(SqList *&L,int i,ElemType e)
{
  int j;
  if (i<1 || i>L->length+1)
    return 0;
  i--; /*将顺序表位序转化为elem下标*/
  for (j=L->length;j>i;j--) /*将data[i]及后面元素后移一个位置*/
    L->data[j]=L->data[j-1];
  L->data[i]=e;
  L->length++; /*顺序表长度增1*/
  return 1;
}

//========================================================
// 删除顺序表中指定位置的元素
//========================================================
int ListDelete(SqList *&L,int i,ElemType &e)
{
  int j;
  if (i<1 || i>L->length)
    return 0;
  i--; /*将顺序表位序转化为elem下标*/
  e=L->data[i];
  for (j=i;j<L->length-1;j++) /*将data[i]之后的元素前移一个位置*/
    L->data[j]=L->data[j+1];
  L->length--; /*顺序表长度减1*/
  return 1;
}

转载于:https://www.cnblogs.com/vs2016/p/5960566.html

顺序表基本操作函数总结相关推荐

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

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

  2. PTA第一章作业1--数据结构基本概念 顺序表基本操作

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

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

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

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

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

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

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

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

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

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

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

  8. 顺序表基本操作实现(详细)

    顺序表的目录 1.顺序表的概念 2. 熟悉顺序表的分类? 3.熟悉顺序表的优缺点 4.动态顺序表的基本操作 4.0包含头文件和结构体 4.1初始化,销毁,扩容 4.2尾插,尾删,头插,头删 4.3任意 ...

  9. 数据结构算法实现-顺序表基本操作

    数据结构算法实现 实现了高一凡的<<数据结构>>,书中的代码是基于VC6++ c++语言实现的,网上也可以找到TC版的c语言实现的源代码,TC版的源代码平台是 Turbo C ...

最新文章

  1. java架构设计理解(一)
  2. mysql如何导入JSON数据-navigate管理数据库,导入JSON数据不显示。需要整体关闭再打开!
  3. 百度地图 app 点击事件无效、不触发 解决方案
  4. Ubuntu10.04No init found. Try passing init= bootarg解决方案
  5. 清华美女学霸数学笔记曝光, 精美程度无与伦比
  6. 如何将本地文件利用git工具上传到github仓库中(超详细+最新版)
  7. java ArrayList的实现
  8. 【转载】WinCE6.0 Camera驱动源码分析(二)
  9. easyuI企业管理系统-实战四 上传图片
  10. 2017-2018 ACM-ICPC, NEERC A题Automatic Door 挺棘手的模拟
  11. Android Jetpack基础组件之AppCompat
  12. 关于windows完成端口(IOCP)的一些理解
  13. 《Dreamweaver CS6 完全自学教程》笔记 第一章:网页制作基础知识
  14. JS JavaScript 实现文字上下滚动效果
  15. 一个人的“野蛮”战争——周鸿祎奋斗记
  16. CF与OF有什么区别?
  17. 【imessage苹果推群发】软件安装,通过苹果的TestFlight筹划分派
  18. 黄鸭兄《傲慢是精英的耻辱,谦虚是精英的责任》摘录
  19. C++用random_shuffle打乱字符串数组顺序
  20. 多字节加法 C语言,编写一个多字节无符号数加法子程序

热门文章

  1. linux vim可视模式、末行模式、保存退出快捷操作
  2. 解决docker push镜像到私有仓库时的报错【http: server gave HTTP response to HTTPS client】
  3. 请详细描述一下线程从创建到死亡的几种状态都有哪些?
  4. mysql php 变量赋值,mysql变量赋值要注意的_MySQL
  5. centos7设置时间为日本东京时间
  6. 【小米校招笔试】一个数组是由有序数组经过n次循环移动后所得,请你用最快速度查找某个元素位置
  7. MySQL五大约束详解(我有多详细只有我知道小白都能懂哦)
  8. 三星a60android9,三星A6058官方国行安卓9固件rom线刷升级包:CHM-A6058ZMU2BSC9
  9. java 图像刺绣算法_图像处理:OpenCV3源代码文件解析
  10. OS / Linux / 主线程退出了,子线程会退出吗?