一个简单顺序表的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.线性表中的数据元素的类型必须相同: 定义: 线性 ...
随机推荐
- rsyslog start with
startswith Checks if the value is found exactly at the beginning of the property value. For example, ...
- Dot模板的使用小结2
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 基于Hadoop的大数据平台实施记——整体架构设计
大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星.我们暂不去讨论大数据到底是否适用于您的组织,至少在互联网上已经被吹嘘成无所不能的超级战舰.好像一夜之间我们就从互联网时代跳跃进了大 ...
- 关于cocos2d安装时编译不成功(个人心得)
在解压cocos2d执行vs2010.sln时错误发生不能成功生成.遇到这样的错误: 1>c:\program files\microsoft sdks\windows\v7.0a\includ ...
- 2.Visual Studio 2013中的默认快捷键
这篇大致是IDE的使用技巧,常用的也就那么几个. 我自己用的最多的是注释.取消注释.格式调整.运行测试.开始调试.断开调试.重新开始调试.删除行ctrl+L.保存.全部保存.打开资源管理器.搜索等几个 ...
- printf("%d, %d\n", i++, ++i)的输出结果是确定的吗???
1. 问题描述 以下代码的输出结果是什么? 题目1: ; printf("%d, %d\n", i++, ++i); 题目2: ; printf("%d, %d, %d, ...
- SQL Server2008不允许修改表结构解决办法
1.修改表结构遇到 2.点击取消 3.打开[工具]—[选项] 4.找到[Desiginers]标签,在右边找到“阻止保存要求重现创建表的更改”,取消勾选.
- iis 配置php
1.CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上. CGI可以用任何一种语 ...
- CSS截取字符串
/*溢出的字...处理*/ .updatecsssubstring { text-overflow: ellipsis; -o-text-overflow: ellipsis; white-space ...
- (4)事件处理——(1)事件处理(Handling Events)
JavaScript has several built-in ways of reacting to user interaction and other events. To make a pag ...