《数据结构》自己练习用的代码,顺序表的简单实现,实现了一部分而已
// 请随意使用和修改
#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;
}
分享到:
相关推荐
建立顺序表; 求顺序表长度; 求顺序表中第i个位置的数据元素的数值; 求数据元素e在顺序表中的位置; 在第i个位置上插入一个数据元素; ...
用c语言实现顺序表的多种功能
用C++实现的顺序链表,简单易懂,适合初学者
用c语言实现的顺序表,可直接运行,对于初学者有很大的帮助
照着数据结构(用面向对象方法与C++语言描述)(第二版)算是自己写的一个简单的顺序表算法,里面有插入、删除、排序等等,可以供学习之用
约瑟夫环的顺序表C++简单实现,较为完整。
数据结构中顺序表的C语言程序简单源代码,数据结构顺序表的算法实现
数据结构实验报告1-顺序表实现简易的学生信息管理系统(C语言),包括实验环境,实验的小结,实验的源代码,实验截图等。 说明:仅供参考,如有bug,还请反馈!
案例问题描述: 班级是学生生活、学习和成长的重要组织机构。每个班级有很多成员,主要包括课任老师和学生两大类,其中课任老师有分担班级教学工作和管理工作...案例用c语言实现,在VS的cpp文件中运行,用顺序表存储
1、建立含有若干个元素的顺序表; 2、对已建立的顺序表实现插入、删除、查找、逆置等操作。
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语言实现顺序表的基本流程: 1. 定义顺序表的结构体:顺序表的结构体包含两个...
简单的c语言程序,输入任意一个数组,用于将一个顺序表按倒序输出
顺序表是一种线性存储结构,它采用一段连续的物理地址存储数据元素,具有元素随机存取、存储密度高、插入...通过运用C语言的数据类型和函数库,可以简单实现一个顺序表,并提供常用的接口操作,如插入、删除、查找等。
顺序表上的插入算法,实现了顺序插入的功能,简单易懂,完全采用C语言
通过简单的程序解决约瑟夫环问题 c++文件