单链表的单子
看 数据结构 单链表 中 有个例子是这样写的 好像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语言 ,