数据结构线性表的c++实现(数组)

#ifndef SEQLIST_H
#define SEQLIST_H


const int maxlen = 100;
template<typename type>
class SeqList
{
private:
type data[maxlen];
int len;
public:
SeqList();
~SeqList() {};
int GetLength()const;
type GetItem(int i)const;
int  GetLocate(const type &item)const;//获得元素item的位置
void GetInside(const type &item, int i);
void DeleteItem(int i);
int IsEmpty();//表为空返回1,否则为0;
void ClearList();
};



#endif


#include<iostream>
#include"SeqList.h"
using namespace std;


template<typename type>
SeqList<type>::SeqList()//构造函数
{
len = 0;
}


template<typename type>
int SeqList<type>::GetLength()const//求线性表长度
{
return len;
}


template<typename type>
type SeqList<type>::GetItem(int i)const//求第i个数据元素
{
if (i >= 1 && i <= len)
return data[i - 1];
else
return NULL;
}


template<typename type>
int SeqList<type>::GetLocate(const type &item)const
{
for (int i = 1; i <= len; i++)
if (data[i - 1] == item)break;
if (i > len)return 0;
return i;
}


template<typename type>
void SeqList<type>::GetInside(const type &item, int i)
{
if (i >= 1 && i <= len)
{
for (int p = len; p != i; p--)
{
data[p] = data[p - 1];
}
data[i] = item;
len++;
}

}


template<typename type>
void SeqList<type>::DeleteItem(int i)
{
if (IsEmpty())
cerr << "wrong" << endl;
if (i >= 1 && i <= len)
{
for (; i < len; i++)
data[i-1] = data[i];
len--;
}
}
template<typename type>
int SeqList<type>::IsEmpty()
{
if (len == 0)
return 1;
else
return 0;
}
template<typename type>
void SeqList<type>::ClearList()
{
len = 0;
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值