데이터 구조 - 링크 조작
2095 단어 데이터 구조
#include
using namespace std;
#define OK 1;
#define ERROR 0;
typedef int ElemType;
typedef int Status;
typedef struct LNode //
{
ElemType data;
struct LNode *next;
}LNode, *LinkList;
Status CreateList_L(LinkList &L,int n) //
{
int i;
LinkList p,q; //p q :
L=new LNode; //
L->next=NULL; //
q=L;
cout<>p->data;
q->next=p; //
q=q->next; //
}
q->next=NULL; //
return OK;
}
Status Outptlist_L(LinkList L) //
{
LinkList p;
p=L->next; //
if(p==NULL) //
{
cout<data<next; //
}
cout <next; //p
while (p!=NULL)
{
n++;
p=p->next;
}
return n;
}
Status GetElem_L(LinkList L,int i,ElemType &e) // L i e
{
LinkList p;
int j;
if (i<1||i> Listlength_(L)) //
return ERROR;
p=L->next;
for (j=1;jnext ;
e=p->data; // e
return OK;
}
Status ListInsert_L(LinkList&L,int i,ElemType e) // i e
{
LinkList p,S;
int j;
if (i<1||i> Listlength_(L)+1) //
return ERROR;
if (i==1) p=L; // p
else
p=L->next; //
for(j=1;jnext;
S=new LNode; //
S->data=e; // e
S->next=p->next; // next
p->next=S; //
return OK;
}
Status ListDelete_L(LinkList&L,int i,ElemType &e) // L i , e
{
LinkList p,q;
int j;
if (i<1||i> Listlength_(L)) //
return ERROR;
p=L->next;
for(j=1;jnext;
q =p->next; // q p next
e=q->data; // q
p->next=q->next; // p next q next
free(q); //
return OK;
}
void main ()
{
int n,m,k;
LinkList L1;
cout <> m;
CreateList_L(L1,m);
cout<