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

📄 my_list.h

📁 实现对链表中对象的基本操作
💻 H
字号:
#include<iostream.h>

class MY_List;

class Item
{
	public:
		friend class MY_List;
	private:
		Item(int d=0)
		{data=d; next=0;}
		Item *next;
		int data;
};

class MY_List
{
	public:
		MY_List()
			{list=0;}
		MY_List(int d)
			{list=new Item(d);}
		int Print();
		int Insert(int d=0);
		int Append(int d=0);
		void Cat(MY_List &il);
		void Reverse();
		int Length();
	private:
		Item *end();
		Item *list;
};

int MY_List::Print()
{
	if(list==0)
		{
		  cout<<"empty\n";
		  return 0;
		}
	cout<<"(";
	int cnt=0;
	Item *pt=list;
	while(pt)
	{
		if(++cnt%40==1&&cnt!=1)
			cout<<endl;
		cout<<pt->data<<" ";
		pt=pt->next;
	}
	cout<<")\n";
	return cnt;
}

int MY_List::Insert(int d)
{
	Item *pt=new Item(d);
	pt->next=list;
	list=pt;
	return d;
}

int MY_List::Append(int d)
{
	Item *pt=new Item(d);
	if(list==0)
		list=pt;
	else
		(end())->next=pt;
	return d;
}
Item *MY_List::end()
{
	Item *prv,*pt;
	for(prv=pt=list;pt;prv=pt,pt=pt->next)
		;
	return prv;
}

void MY_List::Cat(MY_List &il)
{
	Item *pt=il.list;
	while(pt)
	{
		Append(pt->data);
		pt=pt->next;
	}
}

void MY_List::Reverse()
{
	Item *pt,*prv,*tmp;
	prv=0;
	pt=list;
	list=end();
	while(pt!=list)
	{
		tmp=pt->next;
		pt->next=prv;
		prv=pt;
		pt=tmp;
	}
	list->next=prv;
}

int MY_List::Length()
{
	int cnt=0;
	Item *pt=list;
	for(;pt;pt=pt->next,cnt++)
		;
	return cnt;
}

⌨️ 快捷键说明

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