📄 linklist.cpp
字号:
#include <cstdlib>
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LinkList;
void InitList(LinkList *&L)
{
L=(LinkList *)malloc(sizeof(LNode));
L->next=NULL;
}
void CreateListR(LinkList *&L,ElemType a[],int n)
{
LinkList *s,*r;
L=(LinkList *)malloc(sizeof(LNode));
L->next=NULL;
r=L;
for(int i=0;i<n;i++)
{
s=(LinkList *)malloc(sizeof(LNode));
s->data=a[i];
r->next=s;
r=s;
}
r->next =NULL;
}
int ListLength_L(LinkList *L)
{
int n=0;
LinkList *p;
p=L->next ;
while(p!=NULL)
{ n++;
p=p->next ;
}
return n;
}
bool GetElem(LinkList *L,int i,LinkList *&p)
{
int j=1;
p=L->next ;
while(p!=NULL && j<i)
{ p=p->next ;
j++;
}
if(p==NULL)
return false;
else
return true;
}
bool LocateElem(LinkList *L,ElemType e,LinkList *&p)
{
p=L->next ;
while(p!=NULL && p->data!=e)
p=p->next ;
if(p==NULL)
return false;
else
return true;
}
bool ListInsert(LinkList *&L,int i,ElemType e)
{
if(i<1)
return false;
int j=0;
LinkList *p;
p=L ;
while(p!=NULL && j<i-1)
{ p=p->next ;
j++;
}
if( p==NULL)
return false;
LinkList *s;
s=(LinkList *)malloc(sizeof(LNode));
s->data=e;
s->next=p->next;
p->next=s;
return true;
}
bool ListDelete(LinkList *&L,int i,ElemType &e)
{
if(i<1)
return false;
int j=0;
LinkList *p,*q;
p=L ;
while(p!=NULL && j<i-1)
{ p=p->next ;
j++;
}
if(p==NULL || p->next ==NULL)
return false;
q=p->next ;
p->next =q->next ;
e=q->data ;
free(q);
return true;
}
void invert(LinkList *&L)
{
LinkList *p,*q;
q=L->next;
L->next=NULL;
while(q!=NULL)
{
p=q;
q=q->next ;
p->next =L->next ;
L->next =p;
}
}
void concat(LinkList *&L,LinkList *L1)
{
LinkList *p;
p=L->next ;
while(p->next != NULL)
p=p->next ;
p->next =L1->next ;
free(L1);
}
void main()
{
LinkList *L,*p,*r,*L1;
ElemType a[]={55,66,77},e;
ElemType b[]={10,20,30,40};
CreateListR(L,a,3);
CreateListR(L1,b,4);
concat(L,L1);
int len=ListLength_L(L);
/*
bool b=GetElem(L,4,p);
b=LocateElem(L,33,p);
b=ListInsert(L,4,100);
b=ListDelete(L,4,e);
invert(L);
r=L;
p=L->next ;
while(p!=NULL)
{
r=p;p=p->next ;
}*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -