关于基于模板实现的链表为什么编译通不过啊

biaoyiddd biaoyiddd 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include <iostream>
#include <string>
using namespace std;
template<class T>
class List{
private:
struct node{
T data;
node* next;
}*head,*tail;
public:
List(){
head=tail=NULL;
}
~List(){
node* curr=head,*p;
while (curr!=NULL)
{
p=curr;
curr=curr->next;
delete p;
}
head=tail=NULL;
}
void inserthead(T *item){
node *p;
p=new node;
p->next=head;
p->data=*item;
head=p;
if(tail==NULL)
tail=p;
}
void inserttail(T * item){
node *p;
p=new node;
p->next=NULL;
p->data=*item;
if(head==NULL)
head=tail=p;
else
tail=p;
}
T get(){
T temp;
node *p=head;
temp=head->data;
if(head==tail)
head=tail=NULL;
else
head=head->next;
delete p;
return temp;
}
};

class Person{
private:
string name;
int score;
public:
Person(string n,int s):name(n),score(s){}
void show(){
cout<<"name is "<<name<<"/n"<<"score is "<<score<<endl;
}
};

void main()
{
Person p1("ldh",90),p2("lm",80),p3("lj",60);
List<int> l;
List<Person> lis=List<Person>();
lis.inserthead(&p1);
lis.inserthead(&p2);
lis.inserttail(&p3);
Person p=lis.get();
p.show();
}
...全文

相关推荐

实现一个模板类的链表(c++)

本文介绍了使用模板类实现的单向链表,包括构造函数、析构函数、添加元素、赋值操作及链表相加等功能。链表节点由模板参数T指定,支持多种数据类型的动态扩展。通过示例展示了如何读取输入并合并两个列表。

武玲奈

C++单向链表类模板实现与应用

在数据结构的世界里,链表是一种常见的基础数据结构,被广泛应用于各种算法与程序设计中。单向链表,作为链表的一种,它的每个节点只包含一个指针,指向下一个节点。这使得单向链表在增加或删除元素时,相对数组等其他线性结构更加高效,因为它不需要移动数据,只需调整相关节点的指针即可完成操作。本章节主要目的是向读者介绍单向链表的基本概念,包括节点的定义、链表的组成原理以及基础操作等。我们将从单向链表的数据结构开始讲解,逐步深入到它的应用和实现细节。

大奇鸭

用c++类模板,实现的单链表基本操作

本文介绍了使用C++模板类实现的简单单链表,涵盖创建、插入、删除等基本操作,并展示了如何通过main函数进行测试。同时详细说明了预编译头文件stdafx.cpp的作用及其相关配置。

zhongyuan2810

C++利用链表模板类实现简易队列

知识点三:模板类的声明和定义在C++中,模板类的声明和定义不能分开,必须在同一个文件中完成。否则,编译器将无法找到模板类的定义。

weixin_38677936

C++实现链表模板(链表项的数据元素可以为任意类型):链表项的插入、删除、链表的打印、两个链表的连接VS2010

总结来说,这个项目展示了如何使用C++的类模板来实现一个通用的链表数据结构,以及如何在这之上实现插入、删除、打印和连接链表的基本操作。

JessicaWind
评论 4
收藏 已收藏
分享
返回顶部
biaoyiddd
C++ 语言 65,214 成员 250,514 内容