线性表的链式存储结构.docx
《线性表的链式存储结构.docx》由会员分享,可在线阅读,更多相关《线性表的链式存储结构.docx(10页珍藏版)》请在冰豆网上搜索。
线性表的链式存储结构
线性表的链式存储结构
线性表的链式存储结构示意图
存储结构:
#include
usingnamespacestd;
template
structnode{
Tele;
node*next;
};
实现线性表的各个函数:
template
reacl:
:
reacl()
{
L=newnode;
length=0;
L->next=NULL;
}
template
reacl:
:
~reacl()
{
deleteL;
}
template
intreacl:
:
getLength()
{
returnlength;
}
template
Treacl:
:
getEle(intx)
{
node*p=L;
for(inti=0;inext!
=NULL);i++)
p=p->next;
returnp->ele;
}
template
voidreacl:
:
getList(Tt)
{
node*p=L;
inti=0,temp=0;
while(p->next!
=NULL)
{
if(p->ele==t)
{
temp=1;
cout<<"位置:
"<
break;
}
i++;
p=p->next;
}
if(temp==0)cout<<"没有"<}
template
voidreacl:
:
insertl(Tt,intx)
{
node*datal=newnode;
node*p=L;
datal->next=NULL;
datal->ele=t;
for(inti=0;inext!
=NULL);i++)
p=p->next;
datal->next=p->next;
p->next=datal;
length++;
}
template
voidreacl:
:
deletel(intx)
{
node*temp=newnode;
node*p=L;
for(inti=0;i
p=p->next;
temp=p->next;
p->next=temp->next;
length--;
}
template
voidreacl:
:
displayl()
{
node*p=L;
while(p->next!
=NULL)
{
p=p->next;
cout<ele<<"";
}
}
main函数:
intmain()
{
reaclnewl;
for(inti=0;i<30;i++) //初始线性表
{
newl.insertl(i,i);
}
cout<<"线性表长:
"<newl.displayl();
cout<<"得到值是:
"<newl.getList(25);
newl.insertl(100,20); //插入
newl.displayl();
cout<<"线性表长:
"<newl.deletel(21); //删除
newl.displayl();
cout<<"线性表长:
"<system("pause");
return0;
}
运行结果:
填写图片摘要(选填)
程序可执行代码:
#include
usingnamespacestd;
template
structnode{
Tele;
node*next;
};
template
classreacl{
public:
reacl(); //析构函数
~reacl(); //构造函数
intgetLength(); //得到线性表的表长
TgetEle(int); //得到某个位置的节点值
voidgetList(T); //得到所在的位置
voidinsertl(T,int); //插入
voiddeletel(int); //删除
voiddisplayl(); //打印输出
private:
node*L;
intlength;
};
template
reacl:
:
reacl()
{
L=newnode;
length=0;
L->next=NULL;
}
template
reacl:
:
~reacl()
{
deleteL;
}
template
intreacl:
:
getLength()
{
returnlength;
}
template
Treacl:
:
getEle(intx)
{
node*p=L;
for(inti=0;inext!
=NULL);i++)
p=p->next;
returnp->ele;
}
template
voidreacl:
:
getList(Tt)
{
node*p=L;
inti=0,temp=0;
while(p->next!
=NULL)
{
if(p->ele==t)
{
temp=1;
cout<<"位置:
"<
break;
}
i++;
p=p->next;
}
if(temp==0)cout<<"没有"<}
template
voidreacl:
:
insertl(Tt,intx)
{
node*datal=newnode;
node*p=L;
datal->next=NULL;
datal->ele=t;
for(inti=0;inext!
=NULL);i++)
p=p->next;
datal->next=p->next;
p->next=datal;
length++;
}
template
voidreacl:
:
deletel(intx)
{
node*temp=newnode;
node*p=L;
for(inti=0;i
p=p->next;
temp=p->next;
p->next=temp->next;
length--;
}
template
voidreacl:
:
displayl()
{
node*p=L;
while(p->next!
=NULL)
{
p=p->next;
cout<ele<<"";
}
}
intmain()
{
reaclnewl;
for(inti=0;i<30;i++) //初始线性表
{
newl.insertl(i,i);
}
cout<<"线性表长:
"<newl.displayl();
cout<<"得到值是:
"<newl.getList(25);
newl.insertl(100,20); //插入
newl.displayl();
cout<<"线性表长:
"<newl.deletel(21); //删除
newl.displayl();
cout<<"线性表长:
"<system("pause");
return0;
}
欢迎访问我的博客: