线性表之顺序表

1.  顺序表是在计算机内存中以数组的形式保存的线性表。

2.  线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表

3.  优点:存取速度高效,通过下标来直接存储

     缺点:插入和删除比较慢

4.  基本操作:

      

5.  具体的代码实现:

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
#include<CoreWindow.h>
#include<assert.h>
typedef int DataType;

class SeqList
{
public:
	SeqList()
		:_a(NULL), _size(0), _capacity(0)
	{}
	SeqList(const SeqList& s)
		:_a(new DataType[s._capacity])
		, _size(s._size)
		, _capacity(s._capacity)
	{
		memcpy(_a, s._a, sizeof(DataType)*_size);
	}
	SeqList& operator=(SeqList s)
	{
		if (this != &s)
		{
			Swap(s);
		}
		return *this;
	}
	~SeqList()
	{
		delete[]_a;
		_size = _capacity = 0;
	}

	void Swap(SeqList& s)
	{
        swap(_a,s._a);
        swap(_size,s._size);
        swap(_capacity,s._capacity);
	}
	void PushBack(DataType x)
	{
		Insert(_size, x);
	}
	void PopBack()
	{
		Erase(_size);
	}
	void PushFront(DataType x)
	{
		Insert(0, x);
	}
	void PopFront()
	{
		Erase(0);
	}
	void Insert(size_t pos, DataType x)//在pos位前面插入数据x
	{
		assert(pos <= _size);
		if (_size >= _capacity)
		{
			_capacity = 2 * _capacity + 3;
			_size++;
			DataType *tmp = new DataType[_capacity];//扩容开空间
			for (size_t i = 0; i < pos; ++i)//将数据复制到新空间
				tmp[i] = _a[i];
			tmp[pos] = x;
			for (size_t i = pos + 1; i < _size; ++i)
				tmp[i] = _a[i - 1];

			delete[]_a;
			_a = tmp;
		}
		else
		{
			_size++;
			for (size_t i = _size - 1; i > pos; --i)
			{
				_a[i] = _a[i - 1];
			}
			_a[pos] = x;
		}
	}
	void Erase(size_t pos)
	{
		assert(_size&&pos <= _size);
		--_size;
		for (size_t i = pos; i < _size; ++i)
			_a[i] = _a[i + 1];
	}
	DataType& operator[](size_t pos)
	{
		assert(pos < _size);
		return _a[pos];
	}
	void Print()
	{
		for (size_t i = 0; i < _size; ++i)
			cout << _a[i] << " ";
		cout << endl;
	}
private:
	DataType* _a;
	size_t _size;
	size_t _capacity;
};
int main()
{
	SeqList s1;
	s1.PushFront(1);
	s1.PushFront(2);
	s1.PushFront(3);
	s1.PushFront(4);
	s1.Print();
	s1.Insert(1, 10);
	s1.Print();

	system("pause");
	return 0;
}

 

**描述:“适用于JDK8的环境”** 本文将深入探讨Neo4j社区版3.5.6版本,这是一个基于图数据库的强大工具,特别适用于知识图谱构建和可视化。由于其运行需求,必须在Java Development Kit(JDK)8的环境下进行安装和操作。 **一、Neo4j概述** Neo4j是一款开源的图形数据库,它以节点、关系和属性的形式存储数据,这使得处理复杂网络结构的数据变得更为直观和高效。Neo4j社区版是免费的,适合开发和学习用途,而企业版则提供了更多的高级功能和服务。 **二、JDK8要求** 为了运行Neo4j 3.5.6,你需要在你的计算机上安装JDK8。JDK是Java开发工具包,包含了运行Java应用程序所需的Java虚拟机(JVM)以及一系列开发工具。确保安装的是与Neo4j版本兼容的JDK版本至关重要,因为不兼容的JDK可能会导致运行错误或性能问题。 **三、安装和配置** 1. **下载与解压**: 从官方渠道下载"neo4j-community-3.5.6.zip"压缩文件,并将其解压到你选择的目录。 2. **环境变量配置**: 配置系统环境变量,将Neo4j的bin目录添加到PATH环境变量中,以便于命令行启动和管理数据库。 3. **修改配置文件**: Neo4j的配置主要通过`conf/neo4j.conf`文件进行,如需更改默认设置,如内存分配、端口设置等,应在此文件中进行修改。 4. **启动和停止**: 使用`neo4j console`命令启动服务,`neo4j stop`命令关闭服务。 **四、知识图谱与可视化** Neo4j因其强大的图数据模型,成为构建知识图谱的理想选择。你可以使用Cypher查询语言来操作和查询图数据,它的语法简洁且直观,易于学习。 1. **Cypher语言**: Cypher是一种声明式、图形化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值