我的代码会参考网上很多大神的代码,但绝不是抄袭,还有..........起名字是个很大的问题,我英语水平不高啊,所以各位不要纠结于各个函数的名字啊
也不知道#ifdef,#ifndef 是不是我这么用的,
先来一个线性表的,有错误的地方还望指正,谢谢。
// head.h
#include<iostream>
template<typename T> class SqList
using namespace std;
//sqlist.cpp
#ifndef HEAD
#define HEAD
#include "head.h"
#endif
/********************************
* 待改进。。
* 加入一个IncreaseElem,当默认空间不够用时像c中realloc()一样重新申请空间
* 加入一个IsFull()的私有函数用于判断是否满
*
* 修改日期 2013-9-23 21:56
*********************************/
template
class SqList
{
public:
SqList();
~SqList();
int Length(); //
int Select(const T elem);//
bool Insert(const T elem ,int index);//
bool InsertEnd(const T elem);//
bool Updata( const T elem ,int index);//
bool Delete( const T elem);//
bool IsEmpty();//
T Get( int index);
void Clear();//
private:
T *pElem;
int Size;
int MaxSize;
static const int DefaultSize = 100;
//static const int IncreaseElem = 10 ;
};
template
SqList
::SqList():Size( 0 ),MaxSize(DefaultSize)
{
//初始化变量;
pElem = new T[DefaultSize];
}
template
SqList
::~SqList() { delete[] pElem; } template
int SqList
::Length() { return Size; } template
bool SqList
::IsEmpty() { if( 0 == Size ){ return true; } else{ return false; } } template
void SqList
::Clear() { Size = 0; } template
int SqList
::Select(const T elem) { //查询线性表中是否存在传入元素 //如果查询到返回 元素位置 else 返回 0 T *p; int i; p = pElem; for( i =0;i < Size; i++){ if( *p == elem ){ return i+1; } p = ++p; } return 0; } template
bool SqList
::Insert( const T elem, int index ) { T a,b; if( index > Size || Size+1>MaxSize ){ return false } Size++; a = pElem[index-1]; pElem[index-1] = elem; for(index;index
bool SqList
::InsertEnd( const T elem) { if( Size+1>MaxSize){ return false; } pElem[Size] = elem; Size++; return true; } template
bool SqList
::Updata( const T elem ,int index) { if( index > Size){ return false; } pElem[index-1] = elem; return true; } template
bool SqList
::Delete( const T elem) { int i=0; T *p; p = pElem; while(*p != elem){ i++; if(i >= Size){ return false; } p++; } for( ;i
T SqList
::Get( int index ) { if( index > Size){ return 0; } return pElem[index -1]; }
//main.cpp
#ifndef HEAD
#define HEAD
#include "head.h"
#endif
#include"sqlist.cpp"
int main()
{
SqList
list;
list.Length();
list.InsertEnd(55);
cout<
<