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

📄 linkedlist.h

📁 c++的标准模板STL操作
💻 H
字号:
//linkedlist.h
#include<malloc.h>
#ifndef LINKEDLIST_CLASS
#define LINKEDLIST_CLASS
#include <iostream>
#include <cstdlib>
using namespace std;
#ifndef NULL
const int NULL = 0;
#endif  // NULL

template <class T>
class LNode
{private:
public:
	T num;
	LNode<T> *_next;   
}; 

template <class T>
class LinkList
{
private:   
public: 
	LNode<T> *_head;
	int _len;
	LNode<T> *initList(void)   // 建立一个带头节点的空链表的函数
	{
		LNode<T> *h;
	h=(LNode<T> *)malloc(sizeof(LNode<T>));
	h->num=0;   // 头节点的指数赋值为-1
	h->_next=NULL;
	return h; 
	}
	void CreatPolyn(LinkList<T> p,int m,T j); //创建链表
};

	template <class T>
		void LinkList<T>::CreatPolyn(LinkList<T> p,int m,T j) //创建链表
	{  
		LNode<T> *h,*e,*q;
	//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
	h=p.initList();   //创建一个带头节点的空链表
	q=e=h;
	p._head=h;
	p._len=m; 
	for(int i=1;i<=m;++i)
	{ 
		cout<<"请输入第"<<i<<"项的数:";// 输入数
		cin>>j;
		e=(LNode<T> *)malloc(sizeof(LNode<T>));
		e->num=j;     // 把新节点插入到链表中
		e->_next=NULL;
		q->_next=e;
		q=q->_next;
	}  
	//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
	h=p._head;//显示构建的链表节点中的数值
	e=h->_next;
	int i1=1;
	while(e)
	{ 
		cout<<"链表中节点"<<i1<<"中存储的值是"<<endl;
		cout<<e;
		num<<endl;
		m--;
		e=e->_next; 
		i1++;
	} 
	//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
	e=q=p._head;// 使用循环释放链表中每个节点的内存空间
	int i2=0;
	while(p._len+1)
	{  
		q=q->_next;
		cout<<"释放"<<i2<<"节点!"<<endl;
		free(e);        //释放链表中节点的内存空间
		e=q; 
		p._len--;
		i2++;
	} //  释放链表中节点的内存空间
	}
#endif

⌨️ 快捷键说明

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