`
willzh
  • 浏览: 296415 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

顺序表的简单实现

    博客分类:
  • c++
阅读更多
《数据结构》自己练习用的代码,顺序表的简单实现,实现了一部分而已

// 请随意使用和修改
#include <iostream>
#include <cstdlib>
using namespace std;

template<class Type> class SeqList
{

	public:
		SeqList()
		{
			data = NULL;
			MaxSize = 0;
			len = 0;
		}
		SeqList(int size)
		{
			data = new Type[size];
			if(data==NULL)
			{
				cerr<<"Memory allocation failare!"<<endl;
				exit(1);
			}
			MaxSize = size;
			len = 0;
		}
		~SeqList()
		{
			delete[] data;
		}

		int insertItem(Type elem, int index)
		{
			if(index<0 || index>len)
			{
				cerr<<"Error: out of range"<<endl;
				exit(1);
			}
			for(int i=len; i>index; i--)data[i] = data[i-1];
			data[index] = elem;
			return ++len;
		}

		int appendItem(Type elem)
		{
			return insertItem(elem, len);
		}

		int deleteItem(int index)
		{
			if(index<0 || index>len)
			{
				cerr<<"Error: out of range"<<endl;
				exit(1);
			}
			for(int i=index;i<len-1;i++)data[i] = data[i+1];
			return --len;
		}
		
		void select_sort()
		{
			int min,t;
			for(int i=0;i<len-1;i++)
			{
				min = i;
				for(int j=i+1;j<len;j++)
					if(data[j]<data[min])min=j;
				t = data[i];
				data[i] = data[min];
				data[min] = t;
			}
		}
		
		void insert_sort()
		{
			Type t;
			int j;
			for(int i=len-1;i>0;i--)
			{
				if(data[i]<data[i-1])
				{
					t = data[i];
					data[i] = data[i-1];
					data[i-1] = t;
				}
			}
			for(int i=2;i<len;i++)
			{
				j = i;
				t = data[i];
				while(t<data[j-1])
				{
					data[j] = data[j-1];
					j--;
				}
				data[j] = t;
			}
		}

		Type get(int index)
		{
			if(index>=0 && index<len)
			{
				return data[index];
			}
			exit(1);
		}

		Type operator[](int index)
		{
			if(index>=0 && index<len)
			{
				return data[index];
			}
		}
		int length()
		{
			return len;
		}

	private:
		Type* data;
		int MaxSize;

		int len;
};

int main()
{
	SeqList<double> seq1(10), seq2(13);
	seq1.insertItem(1.24, 0);
	seq1.insertItem(2.24, 1);
	seq1.appendItem(10.0);
	seq1.appendItem(13.0);
	seq1.appendItem(3.1415926);
	seq1.appendItem(4.16);
	seq1.appendItem(1.16);

	cout<<"the first element of seq1: "<<seq1.get(0)<<endl;
	cout<<"the second element of seq1: "<<seq1[1]<<endl;
	cout<<"length: "<<seq1.length()<<endl;

	seq1.deleteItem(2);
	//seq1.select_sort();
	seq1.insert_sort();
	for(int i=0;i<seq1.length();i++)
	{
		cout<<seq1[i]<<" ";
	}
	cout<<endl;
	seq2.appendItem(2);
	seq2.appendItem(1);
	seq2.appendItem(3);
	seq2.insert_sort();
	for(int i=0;i<seq2.length();i++)
	{
		cout<<seq2[i]<<" ";
	}
	cout<<endl;

	return 0;
}

分享到:
评论

相关推荐

    C语言顺序表简单实现

    建立顺序表; 求顺序表长度; 求顺序表中第i个位置的数据元素的数值; 求数据元素e在顺序表中的位置; 在第i个位置上插入一个数据元素; ...

    用c语言实现顺序表

    用c语言实现顺序表的多种功能

    顺序链表C++实现

    用C++实现的顺序链表,简单易懂,适合初学者

    c语言实现顺序表简单易懂

    用c语言实现的顺序表,可直接运行,对于初学者有很大的帮助

    顺序表C++算法实现

    照着数据结构(用面向对象方法与C++语言描述)(第二版)算是自己写的一个简单的顺序表算法,里面有插入、删除、排序等等,可以供学习之用

    约瑟夫环的顺序表C++实现

    约瑟夫环的顺序表C++简单实现,较为完整。

    数据结构顺序表的算法实现

    数据结构中顺序表的C语言程序简单源代码,数据结构顺序表的算法实现

    数据结构实验报告1-顺序表实现简易的学生信息管理系统(C语言)

    数据结构实验报告1-顺序表实现简易的学生信息管理系统(C语言),包括实验环境,实验的小结,实验的源代码,实验截图等。 说明:仅供参考,如有bug,还请反馈!

    学生信息管理系统的顺序表实现

    案例问题描述: 班级是学生生活、学习和成长的重要组织机构。每个班级有很多成员,主要包括课任老师和学生两大类,其中课任老师有分担班级教学工作和管理工作...案例用c语言实现,在VS的cpp文件中运行,用顺序表存储

    数据结构 顺序表操作

    1、建立含有若干个元素的顺序表; 2、对已建立的顺序表实现插入、删除、查找、逆置等操作。

    顺序表的实现(C语言)

    C语言实现顺序表的操作,简单参考一下,相互交流学习。使用 C语言的顺序表的实现比较简单,是以前学习数据结构时专门记录的,有点帮助。

    编写一个完整顺序表的程序

    (1) 建立一个顺序表,含有n个数据元素。 (2) 输出顺序表及顺序表的长度。 (3) 在顺序表给定的位置i,插入一个值为x的结点。 (4) 在顺序表中删除值为x的结点或者删除给定位置i的结点。 (5) 将顺序表逆置,...

    有关顺序表的课程设计

    关于顺序表的一些课程设计 建立顺序表,完成顺序表的基本操作:初始化、插入、删除、输出(遍历)、销毁, 置空表、求表长、查找元素、判线性表是否为空等。

    顺序表+菜单

    里面包括顺序表的创建,更改,添加,删除元素,遍历顺序表包括菜单功能,代码清晰,结构简单

    数据结构实验一(顺序表基本操作)题目和源程序

    1.编写程序实现顺序表的下列基本操作: (1)初始化顺序表La。 (2)将La置为空表。 (3)销毁La。 (4)在La中插入一个新的元素。 (5)删除La中的某一元素。 (6)在La中查找某元素,若找到,则返回它在La中第一次出现...

    纯C语言实现顺序表附加源码

    简单易实现:顺序表的实现相对简单,使用数组即可存储元素,操作也相对简单,容易理解和实现。顺序表在随机访问是最大优点,下面是使用C语言实现顺序表的基本流程: 1. 定义顺序表的结构体:顺序表的结构体包含两个...

    顺序表的就地逆置

    简单的c语言程序,输入任意一个数组,用于将一个顺序表按倒序输出

    基于C语言实现的顺序表以及基本接口实现

    顺序表是一种线性存储结构,它采用一段连续的物理地址存储数据元素,具有元素随机存取、存储密度高、插入...通过运用C语言的数据类型和函数库,可以简单实现一个顺序表,并提供常用的接口操作,如插入、删除、查找等。

    顺序表上的插入算法

    顺序表上的插入算法,实现了顺序插入的功能,简单易懂,完全采用C语言

    约瑟夫环程序代码(顺序表实现)

    通过简单的程序解决约瑟夫环问题 c++文件

Global site tag (gtag.js) - Google Analytics