• 大小: 2KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: C/C++
  • 标签: 循环链表  单链表  

资源简介

c语言实现的单链表和循环链表,没有用到任何的库,直接内存分配创建链表节点和删除链表节点

资源截图

代码片段和文件信息

#include 
#include 
#include 
using namespace std;
#define MAXSIZE 41
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
using Statue = int;
using ElemType = int;
using pos = int;
struct Node
{
    ElemType data;
    Node *next;
};
using CircleLL = struct Node* ;
//typedef struct Node *CircleLL;
Statue InitList(CircleLL *L)
{
    *L = new struct Node;
    if(*L==nullptr)
    {
        return ERROR;
    }
    (*L)->next=*L;
    return OK;
}
Statue ListInsert(CircleLL *Lpos i  ElemType e)
{
    CircleLL p q;
    int j;
    p=*L;
    j=1;
    while(p->next!=*L && j    {
p = p->next;
++j;
    }
if (p->next==*L || j>i)
{
return ERROR;
}
q = new struct Node;
q->data = e;
q->next = p->next;
 p->next = q;
 return OK;
}
Statue Listdelete(CircleLL *Lpos i ElemType *e)
{
CircleLL p q;
int j;
p = *L;
j = 1;
while (p->next!=*L && j {
p = p->next;
++j;
}
if (p->next==*L || j>i)
{
return ERROR;
}
q = p->next;
*e = q->data;
p->next = q->next;
delete q;
return OK;
}
Statue searchList(CircleLL *Lpos &iElemType e)
{
CircleLL p=(*L)->next;
i=1;
while (p->data != e && p != *L)
{
p = p->next;
++i;
}
if (p==*L)
{
i=-1;
return ERROR;
}
else
{
return OK;
}
}
void creatListHead(CircleLL *Lint n=MAXSIZE)
{
CircleLL p ;
int i;
for (i = 0; i < n;++i)
{
p = new struct Node;
p->data = i+1;
p->next = (*L)->next;
(*L)->next = p;
}
}
void creatListTril(CircleLL *Lint n = MAXSIZE)
{
    CircleLL pq;
    int i ;
    q=*L;
    for(i=0;i    {
        p=new struct Node;
        p->data = i+1 ;
        q->next = p;
        p->next = *L;
        q=p;
    }
}
void printL(CircleLL *L)
{
CircleLL p = (*L)->next;
while (p!=*L)
{
cout << p->data << “ “;
p=p->next;
}
cout << endl;
}
int main()
{
CircleLL L;
InitList(&L);
creatListTril(&L);
// printL(&L);
//  ListInsert(&L10100);
//  printL(&L);
//  int i;
//  Listdelete(&L10&i);
//  cout<<“删除的元素是:“<//  printL(&L);
//  cout<<“请输入要查找的元素: “;
//  cin>>i;
//  pos j;
//  searchList(&Lji);
//  cout<<“该元素所在位置是: “< CircleLL p = Lq;
pos j;
while (p)
{
p = p->next;
if (p->next==L)
{
p->next = L->next;
break;
}
}
p = L->next;
while (p->next!=p)
{
p = p->next;
q = p->next;
j = q->data;
p->next = q->next;
p = q->next;
cout << j << “->“;
}
cout << p->data< system(“pause“);
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        2609  2018-01-24 11:19  CirLL.cpp
     文件         117  2017-12-25 02:36  main.cpp
     文件        2835  2018-01-23 16:59  linkList.cpp

评论

共有 条评论