⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 templtlk.cpp

📁 高永强 全C编程源码 清华大学出版社 2002年六月第一版
💻 CPP
字号:
//这个程序在本书所带软盘中,文件名为TEMPLTLK.CPP
//这个程序利用类模板实现不同数据类型的动态链表。

#include<iostream.h>

template<class T>
struct Node{					//定义链表中一个节点
	T data;
	Node *next;
};

template<class T1>				//定义链表类模板
class List {
	public:
		List(void);				//构造函数
		void show(void);
		Node<T1> *link(T1);		//连接下一个节点
	private:
		Node<T1> *first;		//指向链表的第一个节点
		Node<T1> *end;			//指向链表中的最后一个节点
};

template<class T1> List<T1> :: List(void)	
								//编写构造函数
{
	first = end = NULL;			//将链表初始化为空
}

template<class T1> void List<T1> :: show(void)
								//编写成员子程序
{
	Node<T1> *node;				//产生一个指向链表的指针

	node = first;				//指向第一个节点

	while (node)				//显示链表中的所有数据直到node指向空为止
	{
		cout << node->data << endl;
		node = node->next;		//指向下一个节点
	}
}

template<class T1>				//编写成员子程序
Node<T1> *List<T1> :: link( T1 item)
{
	Node<T1> *ptr = end;		//产生一个指向end的指针

	end = new Node<T1>;			//产生一个新节点

	if (first == NULL)			//如果是一个空链表
		first = end;
	else
		ptr->next = end;		//使链表的最后一个节点的指针指向新产生的节点

	if (end)					//如果成功地产生了最后一个节点
	{
		end->next = NULL;		//将新节点的指针指向空
		end->data = item;		//将数据赋予成员变量
	}
	return(end);				//返回这个新节点的引用地址
}

void main(void)
{
	List<char> ch_list;			//产生一个字符链表
	List<int> int_list;			//产生一个整数链表
	List<float> float_list;		//产生一个实数链表

	for (char ch = 'A'; ch <= 'Z'; ch++)
		ch_list.link(ch);		//调用成员子程序link()产生一个动态链表
	cout <<"下面显示字符链表中的所有数据:" << endl;
	ch_list.show();				//调用成员子程序show()显示链表中的所有数据
	cout << endl;

	for(int i = 0; i < 10; i++)
		int_list.link(i);
	cout <<"下面显示整数链表中的所有数据:" << endl;
	int_list.show();
	cout << endl;
  
	for(i = 0; i< 10; i++)
		float_list.link(i*3.141596);
	cout <<"下面显示实数链表中的所有数据:" << endl;
	float_list.show();
}

/*这个程序运行后将显示如下输出结果:
下面显示字符链表中的所有数据:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z

下面显示整数链表中的所有数据:
0
1
2
3
4
5
6
7
8
9

下面显示实数链表中的所有数据:
0
3.1416
6.28319
9.42479
12.5664
15.708
18.8496
21.9912
25.1328
28.2744
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -