欢迎光临散文网 会员登陆 & 注册

#include using namespace std; #define OK 1 #define ERROR 0 #def

2023-03-27 18:27 作者:凛酱的腿  | 我要投稿

#include <iostream>

using namespace std;

#define OK 1

#define ERROR 0

#define OVERFLOW -2

typedef int Status;

typedef int ElemType;

typedef struct LNode

{

    ElemType data;

    struct LNode *next;

} LNode,*LinkList;

Status InitList(LinkList &L);

void CreateList_H(LinkList &L,LinkList &p,int n);

Status GetElem(LinkList L,int i,LinkList &p,ElemType &e);

LNode *LocateElem(LinkList L,ElemType e,LinkList &p);

Status ListInsert(LinkList &L,int i,ElemType e,LinkList &p,LinkList &s);

Status ListDelete(LinkList &L,int i,LinkList &p,LinkList &q);

int main()

{

LinkList L,p,q,s;

ElemType e;

InitList(L);

int n,i,j;

cin>>n;

int index=1;

while(index!=0)

{cin>>index;

if(index==1)

    InitList(L);continue;

if(index==2)

      CreateList_H(L,p,n);continue;

  if(index==3)

    GetElem(L,i,p,e);break;

    if(index==4)

    *LocateElem(L,e,p);break;

    if(index==5)

    ListInsert(L,i,e,p,s);break;

    if(index==6)

    ListDelete(L,i,p,q);break;}

}


Status InitList(LinkList &L)

{L=new LNode;

L->next=NULL;

return OK;

}

void CreateList_H(LinkList &L,LinkList &p,int n)

{

  L=new LNode;

  L->next=NULL;

  for(int i=0;i<n;i++)

  {

      p=new LNode;

      cin>>p->data;

      p->next=L->next;

      L->next=p;

  }

}

Status GetElem(LinkList L,int i,LinkList &p,ElemType &e)

{

    p=L->next;int j=1;

    while(p&&j<i){

        p=p->next;

        ++j;

    }

    if(!p||j>i)

    e=p->data;

}

LNode *LocateElem(LinkList L,ElemType e,LinkList &p)

{

  cin>>e;

  p=L->next;

while(p&&p->data!=e)

    p=p->next;return p;


}

Status ListInsert(LinkList &L,int i,ElemType e,LinkList &p,LinkList &s)

{

    p=L;int j=0;

    while(p&&(j<i-1))

    {

        p=p->next;++j;

        if(!p||j>i-1)return ERROR;

        s=new LNode;

        s->data=e;

        s->next=p->next;

    }

}

Status ListDelete(LinkList &L,int i,LinkList &p,LinkList &q)

{

    p=L;int j=0;

    while(p&&(j<i-1))

    {

        p=p->next;++j;

        if(!p||j>i-1)return ERROR;

        q=p->next;

        p->next=q->next;

        delete q;

}}


#include using namespace std; #define OK 1 #define ERROR 0 #def的评论 (共 条)

分享到微博请遵守国家法律