当前位置:编程学习 > C/C++ >>

单链表的单子

看 数据结构 单链表 中  有个例子是这样写的 好像if条件是错的  额~~~
#define ERROR 0  
#define OK 1  
 
typedef int Status;  
typedef int ElemType;  
 
typedef struct LNode {  
        ElemType data;  
        struct LNode *next;  
}LNode, *LinkList;  
 
/* L为头结点的单链表的头指针 */  
/* 当第i个元素存在时,其值赋给e并返回OK,否则返回ERROR */  
Status GetElem(LinkList L, int i, ElemType &e)  
{  
        LinkList p = L->next;  
        int j = 1;               // 计数器  
         
        while (p && j<i)         // 寻找第i个结点  
        {          
                p = p->next;      //  
                ++j;              // p始终指向第j个结点  
        }  
        if (!p || j>i)           // 没找到有两种可能,即i不在范围内:i<1||j<i  因为如果j遍历链表后只有两个结果:  
                return ERROR;                        //取到i或没有取到i,如果没有取到i,那么计数器j一定就是表长,否则就是j==i,  
        e = p->data;                                //所以我觉得这个if条件是错误的,它说的两个可能指的都是一个情况,就是遍历到表尾而没有找到  
        return OK;                                                          

 
本文出自 “火竹点滴” 博客

补充:软件开发 , C语言 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,