単一チェーンテーブルのリストを作成


データ構造の単一チェーンテーブルの例を見るとif条件が間違っているような額~~~

  
  
  
  
  1. #define ERROR 0   
  2. #define OK 1   
  3.  
  4. typedef int Status;   
  5. typedef int ElemType;   
  6.  
  7. typedef struct LNode {   
  8.         ElemType data;   
  9.         struct LNode *next;   
  10. }LNode, *LinkList;   
  11.  
  12. /* L  */   
  13. /*  i , e OK, ERROR */   
  14. Status GetElem(LinkList L, int i, ElemType &e)   
  15. {   
  16.         LinkList p = L->next;   
  17.         int j = 1;               //     
  18.           
  19.         while (p && j<i)         //  i    
  20.         {           
  21.                 p = p->next;      //   
  22.                 ++j;              // p j    
  23.         }   
  24.         if (!p || j>i)           //  , i :i<1||j<i   j :   
  25.                 return ERROR;                        // i i, i, j , j==i,   
  26.         e = p->data;                                // if , ,    
  27.         return OK;                                                           
  28. }