一个简单顺序表的C++实现
/* SList.cpp
Author: Qiang Xiao
Time: 2015-07-11
*/
#include<iostream>
using namespace std; const int MAX_LENGTH= ; class SList{
private:
int max_len;
int arr[MAX_LENGTH];
int len;
public:
SList(int a[], int len);
bool append(int);
bool insert(int, int);
void sort();
void swap(int*, int*);
int getMax();
int getMin();
int getLength() const;
void print();
bool pop();
bool remove(int);
}; SList::SList(int a[], int leni){
this->max_len= MAX_LENGTH; if(leni< this->max_len+ ) {
for(int i= ; i< leni; i++){
arr[i]= a[i];
}
this->len= leni;
}
else
cout<<"Create Failed!"<<endl;
} bool SList::pop(){
if(this->len< ){
cout<<"Out of range!"<<endl;
return false;
}
this->arr[len-]= ;
this->len--;
return true;
} bool SList::remove(int pos){
if(pos< || pos> this->len-){
cout<<"Out of range!"<<endl;
return false;
}
for(int i= pos; i< this->len; i++){
this->arr[i]= this->arr[i+];
}
this->arr[this->len-]= ;
this->len--;
} int SList::getLength() const{
return this->len;
} int SList::getMax() {
this->sort();
return this->arr[this->len-];
} int SList::getMin() {
this->sort();
return this->arr[];
} void SList::swap(int* i, int* j){
int tmp= *i;
*i= *j;
*j= tmp;
} bool SList::insert(int pos, int elem){
if(this->len< this->max_len){
if(pos< || pos> this->max_len || this->len> this->max_len- ){
cout<<"Out of range."<<endl;
return false;
}
for(int i= this->len; i> pos; i--){
this->arr[i]= this->arr[i- ];
}
this->arr[pos]= elem;
this->len++;
return true;
}
} bool SList::append(int elem){
if(this->len< this->max_len){
this->arr[this->len]= elem;
len++;
return true;
}
return false;
} void SList::sort(){
for(int i= ; i< this->len; i++){
int min= i;
for(int j= i; j< this->len; j++){
if(this->arr[j]< this->arr[min]){
min= j;
}
}
this->swap(&this->arr[min], &this->arr[i]);
}
this->print();
cout<<endl;
} void SList::print(){
for(int i= ; i< this->len; i++){
cout<<arr[i]<<"\t";
if((i+)%== )
cout<<endl;
}
} int main(){
cout<<"*****************TEST BEGIN*****************"<<endl;
int a[]= {,,,,, };
int len= sizeof(a)/sizeof(a[]);
SList* s= new SList(a, len);
s->print();
cout<<"\n******************************************"<<endl;
int item= ;
s->append(item);
s->print();
cout<<"\n******************************************"<<endl;
int newi= ;
int pos= ;
s->insert(pos, newi);
s->print();
cout<<"\n************After Sort********************"<<endl;
s->sort();
cout<<"\n************MAX, MIN & LENGTH*************"<<endl;
cout<<"MAX: "<<s->getMax()<<", MIN: "<<s->getMin()<<", LENGTH: "<<s->getLength()<<endl;
cout<<"\n*******************POP********************"<<endl;
s->pop();
s->print(); cout<<"\n*****************TEST END*****************"<<endl; return ; }
欢迎交流!
一个简单顺序表的C++实现的更多相关文章
- [deviceone开发]-一个简单的表单示例
一.简介 这个例子我们用do_ScrollView+do_LinearLayout来实现,当没有输入相关的值而去保存的时候,则把隐藏的几个提示Label显示出来,然后调用do_LinearLayout ...
- JQuery中一个简单的表单验证的实例
html代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...
- IDEA插件开发(一)一个简单的表单demo
- [MySQL5.6] 一个简单的optimizer_trace示例
[MySQL5.6] 一个简单的optimizer_trace示例 前面已经介绍了如何使用和配置MySQL5.6中optimizer_trace(点击博客),本篇我们以一个相对简单的例子来跟踪op ...
- 【java学习】Servlet简单的表单程序(一)
此文用于java学习,在此小记. 在此小Demo中使用到了Servlet,所以有必要了解一下Servlet的相关知识.(Servlet的相关知识摘抄自http://blog.csdn.net/jiuq ...
- 数据结构——Java实现顺序表
一.分析 什么是顺序表?顺序表是指用一组地址连续的存储单元依次存储各个元素,使得在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中的线性表.一个标准的顺序表需要实现以下基本操作: 1.初始化顺序表 ...
- [WPF自定义控件库]简单的表单布局控件
1. WPF布局一个表单 <Grid Width="400" HorizontalAlignment="Center" VerticalAlignment ...
- [数据结构]C#顺序表的实现
在数据结构的学习当中,想必C++可能是大家接触最多的入门语言了 但是C#的数据结构却很少看到,今天我写了一个C#顺序表的顺序存储结构 顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是 ...
- 【C语言--数据结构】线性顺序表
线性表的本质: 1.线性表(List)是零个或者多个数据元素的集合: 2.线性表中的数据元素之间是有顺序的: 3.线性表中的数据元素个数是有限的: 4.线性表中的数据元素的类型必须相同: 定义: 线性 ...
随机推荐
- U盘安装XP SP3 professional手记
因为专业应用的软件无法在win7上运行,但在XP上是可以正常使用,所以有想法并有必要重装一下. 说句实在话,之前用U盘安装Windows7真的没有这么麻烦,没想到相同的技术用于安装XP 却是如此折腾人 ...
- gcc编译器对宽字符的识别
最早是使用VC++工具来学习C++,学的越多就越对VC挡住的我看不见的东西好奇,总想多接触一些开发环境,今日抽空摸索了一下CodeBlocks这个开源的IDE使用方法,配置的编译器是MinGW的gcc ...
- JS动态创建table
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 微信小程序环境搭建
第一步 IDE下载 Win版链接: https://pan.baidu.com/s/1gfAy18n 第二步 破解 最新下载链接: https://pan.baidu.com/s/1gfAy18n ...
- Asp.net 获取服务器指定文件夹目录文件,并提供下载
string dirPath = HttpContext.Current.Server.MapPath("uploads/"); if (Directory.Exists(dirP ...
- 解决URL请求中的中文乱码问题
解决URL提交中文出现乱码有两种办法:1.请求端的中字符有encodeURI进行一次转码,如: var url="/getUser?name="+encodeURI(name);服 ...
- iOS 使用UILocalizedIndexedCollation实现区域索引标题(Section Indexed Title)即拼音排序
UITableView在行数相当多的时候,给人的感觉是非常笨重的.通常为了方便用户使用,采用的方法有:搜索框.按层级展示.区域索引标题. 前两种就不用介绍了,此文就介绍区域索引标题的实现. 区域索引标 ...
- Java DecimalFormat 格式化数字
我们经常要将数字进行格式化,比如取2位小数,这是最常见的.Java 提供 DecimalFormat 类,帮你用最快的速度将数字格式化为你需要的样子.下面是一个例子: importjava.text. ...
- 创建oracle数据库的表空间、用户、目录、导入\导出文件等信息
1.创建表空间 create tablespace ts_aw logging datafile 'd:\app\Administrator\product\tablespace\ts_aw.dbf' ...
- 删除除了 id 号不同,其他都相同的学生冗余信息
删除除了 id 号不同,其他都相同的学生冗余信息2.学生表 如下:id 号 学号 姓名 课程编号 课程名称 分数1 2005001 张三 0001 数学 692 2005002 李四 0001 数学 ...