模拟动态数组的顺序表
#include <bits/stdc++.h>
#include <windows.h>
using namespace std;
template<typename t>
class link{
public:
t obj[LINK_MAXN]={NULL};//所有元素
t len=0;//长度
void add(link &li,t obj,int place)//插入元素
{
if(place<0||place>=li.len)return;
if(li.len>=LINK_MAXN)return;
li.len++;
for(int i=place;i<li.len-1;i++)
li.obj[i+1]=li.obj[i];
li.obj[place]=obj;
}
void del(link &li,t obj=NULL,int place=NULL)//删除元素(可使用位置删除或元素删除)
{
if(obj==NULL&&place==NULL)
return;
int oll= -1;
if(place==NULL){
for(int i=0;i<li.len;i++)
if(li.obj[i]==obj)
{oll=i;break;}
if(oll<0)
return;
}
else{
oll=place;
if(place>LINK_MAXN||place<0)
return;
}
li.len--;
for(int i=oll;i<li.len-1;i++)
li.obj[i]=li.obj[i+1];
}
void change(link &li,t yb,t main_)//更改元素
{
int place= -1;
for(int i=0;i<li.len;i++)
if(li.obj[i]==yb)
{place=i;break;}
if(place<0)
return;
else
li.obj[place]=main_;
}
long int findf(link li,int obj)//查找元素
{
for(int i=0;i<li.len;i++)
if(li.obj[i]==obj)
return i;
return NULL;
}
void print(link l)//打印顺序表
{
for(int i=0;i<l.len;i++)
printf("%d ",l.obj[i]);
printf("\b \b\n");
system("pause");
}
};
int main(){
link<int> a1;
a1.add(a1,13,0);
a1.add(a1,13,1);
a1.del(a1,13);
a1.print(a1);
return 0;
}
就是以上这段代码,一直试都是显示“程序.exe已停止工作”,麻烦各位大佬帮我看看哪出了问题,谢谢!