📄 intlist.cpp
字号:
#include "stdafx.h"
#include "IntList.h"
#include "Node.h"
Linklist::Linklist()
{first = current = last = new Node;prior = NULL;}
void Linklist::MakeEmpty()
{ Node *q;
while(first->next!=NULL)
{q = first->next;
first->next=q->next;
delete q;
}
Initialize();
}
int Linklist::Getdata()
{if(current!=NULL)
return current->data;
else
{MessageBox(NULL,"illagel!","BUG",0);
return 0;
}
}
int *Linklist::Get()
{if (current!= NULL)
return ¤t->data;
else return NULL;
}
bool Linklist::Put(int &value)
{if (current != NULL)
{current->data = value;
return true;
}
else
return false;
}
int *Linklist::GetNext()
{
if (current->next != NULL)
{return ¤t->next->data;}
else
return NULL;
}
void Linklist::Next()
{ if(current!=NULL && current->next!=NULL)
{prior=current;
current=current->next;
}
else
{MessageBox(NULL,"illagel!","BUG",0);}
}
void Linklist::InsertBack( int &value)
{ Node *p=new Node(value,current->next);
current->next=p;
current=p;
}
void Linklist::InsertBefore(int &value)
{ Node *p=new Node(value);
if (prior != NULL)
{p->next=current;
prior->next=p;
prior = p;
}
else
{MessageBox(NULL,"illagel!","BUG",0);}
}
/*bool Linklist::Locate(int i)//移动current到第i个节点
{
if (i <= -1)
return FALSE;
current = first->data;
for(int j = 0; current != NULL && j < i; j++, current = current->next)
prior = current;
if (current != NULL)
return TURE;
else
return FALSE;
}*/
void Linklist::First()
{current=first;prior=NULL;}
void Linklist::End()
{
if(last->data!= NULL)
{ for(;current->next!=NULL;current = current->next)
{prior=current;
last=current;
}
}
else
{current = last;}
}
void Linklist::Remove()
{
if (current != NULL && prior != NULL)
{Node *p = current;
prior->next = p->next;
current = p->next;
delete p;
}
else
{MessageBox(NULL,"illagel!","BUG",0);}
}
void Linklist::CreatListH(int n)
{ int i;
Node *s,*p;
p=new Node;
p->next=NULL;
for(i=1;i<=n;i++)
{s=new Node;
s->data=i;
s->next=p->next;
p->next=s;
}
}
void Linklist::CreatListR(int n)
{
Node *s,*p,*r;
int i;
p=r=new Node;
p->next=NULL;
for(i=1;i<=n;i++)
{s=new Node;
s->data=i;
r->next=s;
r=s;
}
r->next=NULL;
}
void Linklist::Swaplist()
{ Node *p,*s;
p=first->next;
first->next=NULL;
while(first!=NULL)
{ s=p->next;
p->next=first->next;
first->next=p;
p=s;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -