用模板设计一个链表类Tlist,实现链表节点的插入,删除,输出功能。

玩酷酷 玩酷酷 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
list.h
template<class T>
struct Node
{
T Date;
Node* next;
};
template<class T>
class Tlist
{
private:
Node<T>* head;
public:
Tlist(){head=NULL;}
void deletelist(T Date);
void insertlist(T aDate,T bDate);
void outputlist();
};
list.cpp
#include<iostream>
using namespace std;
#include"list.h"
template<class T>
void Tlist<T>::insertlist(T aDate,T bDate)//在节点a之前插入节点b
{
Node<T>*p,*q,*s; //p指向节点a,q指向节点a_k,s指向节点b
s=(Node<T>*)new(Node<T>); //动态分配新节点
s->Date=bDate; //设b为此节点
p=head; //若是空表,使b作为第一个节点
if(head=NULL)
{
head=s;
s->next=NULL;
}
else if(p->Date=aDate) //若a是第一个节点
{
s->next=p;
head=s;
}
else
{
while(p->next!=NULL&&p->Date!=aDate)//查找节点a
{
q=p;
p=p->next;
}
if(p->Date=aDate) //若有节点a
{
q->next=s;
s->next=p;
}
else //若没有节点a
{
p->next=s;
s->next=NULL;
}
}
}
template<class T>
void Tlist<T>::deletelist(T aDate) //设aDate是要删除的节点a中的数据成员
{
Node<T> *p,*q; //p用于指向节点a,q用于指向节点a的前一个节点
p=head;
if(p=NULL) //若是空表
return;
if(p->Date=aDate) //若a是第一个节点
{
head=p->next;
delete p;
}
else
{
while(p->Date!=aDate&&p->next!=NULL)
{
q=p;
p=p->next;
}
if(p->Date=aDate)
{
q->next=p->next;
delete p;
}
}
}
template<class T>
void Tlist<T>::outputlist()
{
Node<T>*current=head;
while(current->next!=NULL)
{
cout<<current->Date<<" ";
current=current->next;
}
cout<<endl;
}

int main()
{
Tlist<int> A;
int Date[5]={64,4,76,89,97};
A.insertlist(0,Date[0]); //建立链表A首节点
for(int i=1;i<5;i++)
A.insertlist(0,Date[i]);//顺序向后插入
A.outputlist(); //输出链表
return 0;
}
程序编译连接都可以通过,就是输出是有错误,不知道哪里有错误,请大侠帮忙看一下,谢谢
...全文
评论 5
收藏 已收藏
分享
返回顶部
玩酷酷
C++ 语言 65,214 成员 250,514 内容