栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【自学数据结构】线性表(更新中)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【自学数据结构】线性表(更新中)

在此只为记录我个人学习数据结构的一些内容,为了让自己更理解,而不是仅限于读书本所学,希望对我个人有所帮助。如果有幸有人浏览我的文章,望指出错误,谢谢~~

线性表目录
  • 线性表的定义和基本操作
  • 顺序表
    • 定义
    • 插入
    • 删除
    • 按值查找
    • 按位查找
  • 单链表
    • 初始化
    • 插入
    • 删除
    • 按值查找
    • 按位查找
    • 建立
  • 双链表
    • 定义
    • 插入
    • 删除
  • 循环单链表
  • 循环双链表
  • 静态链表

线性表的定义和基本操作

定义:线性表是具有相同数据类型的n个数据元素的有限序列。(相同数据类型即代表,每个元素存储空间大小一样。)
基本操作: (&即为函数需要返回值时使用)

  1. InitList(&L):初始化线性表
  2. Empty(L):判断线性表是否为空,空返回T,否则返回F
  3. ListInsert(&L,i,e):插入,在表L中的第i个位置,插入元素e
  4. ListDelete(&L,i,&e):删除,删除表L中第i个位置的元素e,并返回e的值
  5. LocateElem(L,e):按值查找,查找表L中的元素e
  6. GetElem(L,i):按位查找,查找表L中,第i位元素
  7. PrintList(L):按先后顺序输出表L的值
  8. Length(L):返回表的长度
  9. DestroyList(&L):销毁表L

分类:
按照存储结构,可分为顺序存储和链式存储,顺序存储即顺序表。链式存储分为单链表,双链表,循环单链表,循环双链表,静态链表。


顺序表 定义
//顺序表定义
#define MaxSize 20
typedef struct {
	int data[MaxSize]; //存储数据元素
	int length;    //顺序表长
}SqList;
插入
//插入
bool InsertList(SqList &L, int i, int e) {
	if (i<1||i>length++)
	{
		return false;
	}
	if (L.length>=MaxSize)
	{
		return false;
	}
	for (int j = L.length; j >= i; j--)
	{
		L.data[j] = L.data[j - 1];
	}
	L.data[i-1] = e;
	L.length++;
	return true;
}
删除
//删除
bool DeleteList(SqList &L, int i, int &e) {
	if (i<1 || i>length)
	{
		return false;
	}
	e = L.data[i - 1];
	for (int j = i; j < L.length; j++)
	{
		L.data[j - 1] = L.data[j];
	}
	L.length--;
	return true;
}
按值查找
//按值查找(输出该元素是第几个)
int LocateElem(SqList L, int e) {
	int i;
	for ( i = 0; i 
		if (L.data[i]==e)
		{
			return i++;
		}
	}
	return true;
}
按位查找
//按位查找(输出值)
bool GetElem(SqList L, int i) {
	return L.data[i-1];
}

单链表 初始化 插入 删除 按值查找 按位查找 建立
双链表 定义 插入 删除
循环单链表
循环双链表
静态链表
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/934645.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号