课程链接
按位查找
// 按位查找,返回第i个元素LNode * GetElem(LinkList L, int i){if (i<0)return NULL;LNode *p; //指针p当前扫描到的结点p=L; //L指向头结点,头结点是第0个结点(不存数据)int j = 0; //指针p指向的是第几个结点while(p!= NULL && j<i){p=p->next;j++}return p;}
按值查找
LNode * LocateElem(LinkList L, int e){LNode *p=L->next;while(p!=NULL && p->data !=e) //p不不等于NULL并且p不等于e时才行p = p->next;return p;}
求表的长度
int Length(LinkList L){int len = 0; //表长LNode *p = L;while (p->next!=NULL){p=p->next;len++;}return len;}
总结:
按位查找,按值查找还有求单链表长度的核心代码差不多。
三种基本操作的时间复杂度都是O(n)
最重要的是如何写循环扫描各个节点的代码逻辑
还要注意边界条件的处理
