데이터 구조 - 링크 조작

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<

좋은 웹페이지 즐겨찾기