【源代码】C++实现严蔚敏数据结构所有算法(一)线性表-顺序表

本文档介绍了使用C++实现严蔚敏数据结构教材中线性表的顺序表部分,包括头文件list.h和对应的实现文件list.cpp。内容详细,适合学习数据结构的读者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

日常说明:首先博主也是菜鸟一枚,有错误欢迎大家指正。另外本博客所有的代码博主编写后均调试
通过。重要提醒!!!!博主使用的是VS2017,如果有低版本的小伙伴
最好新建空项目将此代码复制上去。

附加说明:最初的代码我没有严格的按照项目规范来分离,希望大家包含。
头文件 list.h

#pragma once
/**********************************
* algorithms.h :线性表的基本操作 *
* author : shilei                 *
* created : 2017.3.12             *
***********************************/

class SqList
{
   
   
protected:
	DataType * elem;//首地址
	int length; //当前的顺序表长度
	int listSize; //顺序表的容量
private:
	void init(DataType values[], int n);//初始化线性顺序表
public:
	SqList(int LIST);
	~SqList(void);
	int Clength();
	void ListInsert(int i, DataType e);
	virtual void ListInsert(DataType e);
	DataType ListDelete(int i);
	DataType GetElem(int i);
	SqList(DataType values[], int n);//构造顺序表,由数组直接提供元素
};
SqList::SqList(int LIST)//构造空顺序表
{
   
   
	this->listSize = LIST;
	length = 0;
	this->elem = new DataType[listSize];
}
SqList::SqList(DataType values[], int n)//用数组直接构造顺序表
{
   
   
	this->init(values, n);
}
void SqList::init(DataType values[], int n)//初始化顺序表
{
   
   
	this->listSize = n * 2;//初始化顺序表的容量为n*2
	this->elem = new DataType[this->listSize];//初始化elem顺序表
	this->length = n;//初始化顺序表的元素个数为变量n
	for (int i = 0; i < length; i++)//将数组中的元素一次赋值到顺序表
	{
   
   
		this->elem[i] = values[i];
	}
}
SqList
内含资源如下: 1.基本数据结构 1.1.Array ........... 动态数组 1.2.LinkedList ... 链表 1.3.BST .............. 二分搜索树 1.4.MapBST ..... 二分搜索树(用于实现映射) 1.5.AVLTree ...... AVL树 2.接口 2.1.Queue ........... 队列接口 2.2.Stack .............. 栈接口 2.3.Set .................. 集合接口 2.4.Map ............... 映射接口 2.5.Merger .......... 自定义函数接口 2.6.UnionFind ..... 并查集接口 3.高级数据结构 3.1.ArrayQueue .......................... 队列_基于动态数组实现 3.2.LinkedListQueue .................. 队列__基于链表实现 3.3.LoopQueue ........................... 循环队列_基于动态数组实现 3.4.PriorityQueue ....................... 优先队列_基于最大二叉堆实现 3.5.ArrayPriorityQueue ............. 优先队列_基于动态数组实现 3.6.LinkedListPriorityQueue ..... 优先队列_基于链表实现 3.7.ArrayStack ............................. 栈_基于动态数组实现 3.8.LinkedListStack ..................... 栈_基于链表实现 3.9.BSTSet ..................................... 集合_基于二分搜索树实现 3.10.LinkedListSet ....................... 集合_基于链表实现 3.11.BSTMap ................................ 映射_基于二分搜索树实现 3.12.AVLTreeMap ....................... 映射_ 基于AVL树实现 3.13.LinkedListMap .................... 映射_基于链表实现 3.14.MaxHeap ............................. 最大二叉堆 3.15.SegmentTree ...................... 线段树 3.16.Trie ......................................... 字典树 3.17.QuickFind ............................ 并查集_基于数组实现 3.18.QuickUnion ......................... 并查集_基于树思想实现
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值