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

📄 链表反转.txt

📁 总结了一些软硬件方面的笔试面试题
💻 TXT
字号:
#include <iostream>
using namespace std;

typedef struct _NODE
{
	int value;
	_NODE * next;
	_NODE(int v);
}NODE, *PNODE;

_NODE::_NODE(int v)
{
	value=v;
	next=NULL;
}

class LinkList
{
friend ostream& operator<<(ostream &os,LinkList &T);
public:
	LinkList(){head=NULL;tail=NULL;
	}
	~LinkList();
	bool Insert(int v);
	void Reverse();
private:
   LinkList(const LinkList&);
   LinkList & operator=(const LinkList&);
   PNODE head;
   PNODE tail;
};

ostream& operator<<(ostream &os,LinkList &T)
{
	PNODE pNode=T.head;
	for(; pNode!=NULL; pNode=pNode->next)
	{	
		os << pNode->value << ' ';
	};
	os << endl;

	return os;
}

LinkList::~LinkList()
{
	PNODE prev=head, now;
	while(prev!=NULL)
	{
		now=prev->next;
		delete prev;
		prev=now;
	}
	head=NULL;
	tail=NULL;
}

bool LinkList::Insert(int v)
{
	PNODE temp=new NODE(v);
    if(NULL==temp)
        return false;
	if(NULL==head)
	{
		head=temp;
		tail=temp;
	}
	else
	{
		tail->next=temp;
		tail=temp;
	}
	temp=NULL;
    return true;
}

void LinkList::Reverse()
{
	tail=head;
	PNODE headtemp=head->next;
	PNODE headrest=headtemp->next;
	tail->next=NULL;
	while(headrest!=NULL)
	{
		headtemp->next=head;
		head=headtemp;
		headtemp=headrest;
		headrest=headrest->next;
	}
	headtemp->next=head;
	head=headtemp;
	headtemp=NULL;
}

int main()
{
	LinkList linkT;
    for(int i=0; i<10; i++)
		linkT.Insert(i);
    linkT.Reverse();
    cout << linkT << endl;
	return 0;
}

⌨️ 快捷键说明

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