您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> 双向链表的查找

双向链表的查找(1/2)

来源:网络整理     时间:2017/10/27 12:27:13     关键词:

关于网友提出的“ 双向链表的查找”问题疑问,本网通过在网上对“ 双向链表的查找”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 双向链表的查找
描述:

双向链表

给定双向链表的数据类型如下
typedef  int ElemType;
typedef struct Node * PtrToNode;
typedef PtrToNode Position;
struct DListNode;
typedef DListNode * DList;
typedef struct Node
{
ElemType data; /*数据域*/
PtrToNode previous; /*指向前驱*/
PtrToNode next; /*指向后继*/
}Node;
struct DListNode
{
PtrToNode head; /*指向头节点*/
PtrToNode tail; /*指向尾节点*/
int size;  //链表中数据项数
};
完成Position Locate(DList L,ElemType x)函数,该函数在双向链表中按从头到尾的顺序查找是否存在结点的数值为x,如果存在返回该结点的指针,否则返回NULL,其中L是一个不带头节点的空双向链表。
完成Position GetItem(DList L,int k)函数,该函数在双向链表中按从头到尾的顺序查找链表中的第k(从1开始计数)个节点,如果存在返回该结点的指针,否则返回NULL,其中L是一个不带头节点的空双向链表。
解决方案1:

Position Locate(DList L,ElemType x)
{
    Position p = L->head;
    while (p && p != L->tail) {
        if (x == p->data)
            return p;
        p = p->next;
    }
    return NULL;
}

相关图片

相关文章