《数据结构》通用简单线性表的实现日记:
#include<iostream>
using namespace std;
template <class T,int N>
class List //创建一个线性表;
{
T *p; //创建一个指针
public:
List()
{
if (p == NULL)
{
T *temp = new T[N];
p->temp;
}
else
{
cout << "请不要重复创建线性表" << endl;
}
};
~List()
{
delete []p;
};
void ClearList()
{
if (sizeof(p)!=0)
{
for (int i = sizeof(p); i >= 0; i--)
p[i] == NULL;
}
else
{
cout << "该线性表已经是空表" << endl;
}
}
int Listlength()
{
if (p != NULL)
{
return sizeof(p);
}
else
{
cout << "该线性表不存在" << endl;
return -1;
}
}
T GetElem(int i)
{
if (p != NULL)
{
return p[i];
}
else
{
cout << "该线性表不存在,输出的-1为错误代码" << endl;
return -1;
}
}
void ListInsert(int i ,T num)
{
if (p != NULL)
{
int tn = sizeof(p)+1;
T *temp = new T[tn];
temp = p;
for (int j = sizeof(p);j > i; j--)
{
temp[j] = temp[j - 1];
temp[i] = num;
}
p = temp;
delete [] temp;
}
else
{
cout << "该线性表不存在" << endl;
}
}
T ListDelete(int i)
{
if (p != NULL)
{
int tn = sizeof(p) - 1;
T *temp = new T[tn];
T e = p[i];
for (int j = i;j <sizeof(p); j++)
{
p[j-1] = p[j];
}
for (int j = 0; j < tn; j++)
{
temp[j] = p[j];
}
p = temp;
delete[] temp;
return e;
}
else
{
cout << "该线性表不存在,输出的-1为错误代码" << endl;
return -1;
}
}
};