📄 linklist.cpp
字号:
//////////////////////////////////////////////////
/*
程序功能:各个程序算法的实现
开发人员:葛兴高
开发日期:2003、11、19
开发版本:1.0
*/
#include "LinkList.hpp"
LinkList::LinkList()
{
head=tail=p=NULL;
}
void LinkList::inserthead(DataType &item)
{
p=new ListNode(item,NULL);
if(head==NULL)
{
tail=p;
}
p->next=head;
head=p;
}
void LinkList::inserttail(DataType &item)
{
p=new ListNode(item,NULL);
if(tail==NULL)
{
head=p;
tail=head;
}
else tail->next=p;
tail=p;
};
void LinkList::insertafert(DataType &item)
{
ListNode *TempNode;
TempNode=new ListNode(item,NULL);
if(p==NULL)
{
TempNode->next=head;
if(head==NULL) tail=TempNode;
head=TempNode;
p=TempNode;
}
else
{
TempNode->next=p->next;
p->next=TempNode;
}
}
void LinkList::insertbefore(DataType &item)
{
ListNode *TempNode,*s;
TempNode=new ListNode(item,NULL);
if(p==NULL||p==head)
{
TempNode->next=head;
if(head==NULL)
tail=TempNode;
head=TempNode;
p=TempNode;
}
else
{
s=head;
while(s->next!=p)
s=s->next;
TempNode->next=p;
s->next=TempNode;
}
}
void LinkList::Delete(void)
{
ListNode *TempNode;
if(p==NULL) return ;
else
if((p==head)&&(head==tail))
head=tail=NULL;
else
if(p==head)
head=head->next;
else
{
TempNode=head;
while(TempNode->next!=p)
TempNode=TempNode->next;
if(TempNode==tail)
{
TempNode->next=NULL;
tail=TempNode;
}
else
TempNode->next=p->next;
}
ListNode* t=p;
p=head;
delete t;
//p=NULL;
return ;
}
void LinkList::reverse(void)
{
ListNode *TempNode,*s;
TempNode=head;
head=NULL;
while(TempNode!=NULL)
{
s=TempNode->next;
TempNode->next=head;
head=TempNode;
TempNode=s;
}
}
void LinkList::print(void)
{
ListNode *TempNode;
TempNode=head;
while(TempNode!=NULL)
{
cout<<TempNode->data;cout<<"\t";
TempNode=TempNode->next;
}
if(p==NULL)
cout<<"当前的链表为空"<<"\n";
}
LinkList::~LinkList(void)
{
while(head!=NULL)
{
p=head;
head=head->next;
delete p;
}
}
int LinkList::get_cur_data()
{
ListNode* t;
int count=1;
t=head;
while(p!=t)
{
t=t->next;
count++;
}
cout<<"当前的指针指在的位置count="<<count<<"\n";
return p->data;
}
void LinkList::IsEmpty()
{
if(p==NULL) cout<<"链表已经为空\n";
else cout<<"链表不为空\n";
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -