顺序表基本操作函数总结
/*************************************************************************************/
/* 顺序表基本操作函数
/*------------------------------------------------------------------------------------------------------------------------------
/*
/* 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. 掌握线性表的逻辑结构: 2. 顺序表基本操作的实现: 3. 掌握利用C/C++编程语言实现数据结构的编程方法: 4. 通过上机时间加强利用数据结构解决实际应用问题的能力: 二. ...
- PTA第一章作业1--数据结构基本概念 顺序表基本操作
6-2 顺序表基本操作 (10分) 本题要求实现顺序表元素的增.删.查找以及顺序表输出共4个基本操作函数.L是一个顺序表,函数Status ListInsert_Sq(SqList &L, i ...
- 【PTA】6-1 顺序表基本操作(10 分)
题目来自 网络与信息安全-数据结构作业1-数据结构基本概念 6-1 https://fancyking.ml/archives/71 原题描述 6-1 顺序表基本操作(10 分) 本题要求实现顺序表元 ...
- 顺序表基本操作<小白一听就懂!!!><超详细><接地气>
顺序表基本操作<小白一听就懂!!!><超详细>&&<接地气> ***小编前言*** 完整代码 // 头文件 //主函数 // 初始化 /*运用指针* ...
- 6-2 顺序表基本操作 (10 分)
6-2 顺序表基本操作 (10 分) 本题要求实现顺序表元素的增.删.查找以及顺序表输出共4个基本操作函数. L是一个顺序表, 函数Status ListInsert_Sq(SqList &L ...
- 6-2 顺序表基本操作 (10分)
6-2 顺序表基本操作 (10分) 本题要求实现顺序表元素的增.删.查找以及顺序表输出共4个基本操作函数.L是一个顺序表,函数Status ListInsert_Sq(SqList &L, i ...
- 6-1 顺序表基本操作(10 分)
6-1 顺序表基本操作(10 分) 本题要求实现顺序表元素的增.删.查找以及顺序表输出共4个基本操作函数.L是一个顺序表,函数Status ListInsert_Sq(SqList &L, i ...
- 顺序表基本操作实现(详细)
顺序表的目录 1.顺序表的概念 2. 熟悉顺序表的分类? 3.熟悉顺序表的优缺点 4.动态顺序表的基本操作 4.0包含头文件和结构体 4.1初始化,销毁,扩容 4.2尾插,尾删,头插,头删 4.3任意 ...
- 数据结构算法实现-顺序表基本操作
数据结构算法实现 实现了高一凡的<<数据结构>>,书中的代码是基于VC6++ c++语言实现的,网上也可以找到TC版的c语言实现的源代码,TC版的源代码平台是 Turbo C ...
最新文章
- java架构设计理解(一)
- mysql如何导入JSON数据-navigate管理数据库,导入JSON数据不显示。需要整体关闭再打开!
- 百度地图 app 点击事件无效、不触发 解决方案
- Ubuntu10.04No init found. Try passing init= bootarg解决方案
- 清华美女学霸数学笔记曝光, 精美程度无与伦比
- 如何将本地文件利用git工具上传到github仓库中(超详细+最新版)
- java ArrayList的实现
- 【转载】WinCE6.0 Camera驱动源码分析(二)
- easyuI企业管理系统-实战四 上传图片
- 2017-2018 ACM-ICPC, NEERC A题Automatic Door 挺棘手的模拟
- Android Jetpack基础组件之AppCompat
- 关于windows完成端口(IOCP)的一些理解
- 《Dreamweaver CS6 完全自学教程》笔记 第一章:网页制作基础知识
- JS JavaScript 实现文字上下滚动效果
- 一个人的“野蛮”战争——周鸿祎奋斗记
- CF与OF有什么区别?
- 【imessage苹果推群发】软件安装,通过苹果的TestFlight筹划分派
- 黄鸭兄《傲慢是精英的耻辱,谦虚是精英的责任》摘录
- C++用random_shuffle打乱字符串数组顺序
- 多字节加法 C语言,编写一个多字节无符号数加法子程序
热门文章
- linux vim可视模式、末行模式、保存退出快捷操作
- 解决docker push镜像到私有仓库时的报错【http: server gave HTTP response to HTTPS client】
- 请详细描述一下线程从创建到死亡的几种状态都有哪些?
- mysql php 变量赋值,mysql变量赋值要注意的_MySQL
- centos7设置时间为日本东京时间
- 【小米校招笔试】一个数组是由有序数组经过n次循环移动后所得,请你用最快速度查找某个元素位置
- MySQL五大约束详解(我有多详细只有我知道小白都能懂哦)
- 三星a60android9,三星A6058官方国行安卓9固件rom线刷升级包:CHM-A6058ZMU2BSC9
- java 图像刺绣算法_图像处理:OpenCV3源代码文件解析
- OS / Linux / 主线程退出了,子线程会退出吗?