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

📄 clinklist.cpp

📁 数据结构经典课件(附带各章的经典算法) 具体代码是使用C语言编写的
💻 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=L;
}

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=L;
}

int ListLength(LinkList *L)
{
  int n=0;
  LinkList *p;
  p=L->next ;
  while(p!=L)
  {  n++;
     p=p->next ;
  }
  return n;
}

bool GetElem(LinkList *L,int i,LinkList *&p)
{
   int j=1;
   p=L->next ;
   while(p!=L && j<i)
   { p=p->next ;
     j++;
   }
   if(p==L)
	   return false;
   else
       return true;
}
bool LocateElem(LinkList *L,ElemType e,LinkList *&p)
{
    p=L->next ;
	while(p!=L && p->data!=e)
	   p=p->next ;
	if(p==L)
		return false;
	else
	    return true;
}

bool ListInsert(LinkList *L,int i,ElemType e)
{
   int j=1;
   LinkList *p;
   p=L->next ;
   while(p!=NULL && j<i-1)
   { p=p->next ;
     j++;
   }
   LinkList *s;
   s=(LinkList *)malloc(sizeof(LNode));
   s->data=e;
   s->next=p->next;
   p->next=s;
   return true;
}
void Create(LinkList *&rear,int n)
{
  LinkList *s;
  rear=(LinkList *)malloc(sizeof(LNode));
  rear->data=1;
  rear->next=rear;
  for(int i=2;i<=n;i++)
  { 
    s=(LinkList *)malloc(sizeof(LNode));
	s->data=i;
	s->next=rear->next;
	rear->next=s;
	rear=s;
  }
}
void Juse(LinkList *rear,ElemType &e,int m)
{
    LinkList *r,*p;
	int i;
	r=rear;
	while(r->next!=r)
	{ for(i=1;i<m;i++)
	    r=r->next ;
	  p=r->next ;
	  r->next=p->next ;
	  free(p);
	}
	e=r->data ;
	free(r);
}
void main()
{
  LinkList *L,*rear,*p;
  ElemType a[]={11,22,33,44},e;
  CreateListR(L,a,4); 
  Create(rear,8);
  Juse(rear,e,5);
  int len=ListLength(L);
  bool b=GetElem(L,4,p);
  b=LocateElem(L,100,p);
  b=ListInsert(L,5,100);
  p=L->next ;
   while(p!=NULL)
	  p=p->next ;

  
}

⌨️ 快捷键说明

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