查找元素(线性表实训)

在线性表中查找特定元素是线性表的常用操作之一。要求补全函数search,实现在一个链表中搜索包含指定数据的结点。如果链表中有多个结点包含该数据,则返回第一个。

相关知识

由于链表结点都是动态内存分配得到的,在内存中不是连续存储,没法使用二分法之类的算法来实现信息检索,但可以使用顺序查找的方法。
顺序查找需要遍历整个链表,逐个检查每个结点是否满足条件。程序中的printList函数已实现了遍历功能,可以参照其来实现查找函数。其中printList函数的实现代码如下:

// 函数printList:输出链表,每个数据之间用一个空格隔开
// 参数:h-链表头指针
void printList(node *h)
{
   
    cout << "List:";
    while(h)
    {
   // h为真,即h指向的结点存在,则输出该结点的数据
        cout << " " << h->data;  // 输出结点数据
        h=h->next;  // 将该结点的指针域赋值给h,h就指向了下一个结点
    }
    cout << endl; // 输出换行符
}
#include <iostream>
//#include "linearList.h"
using namespace std;
// 定义结点结构
struct node
{
   
    int data;  // 数据域
    node * next;  // 指针域,指向下一个结点
};
// 函数search:在链表中查找包含数据num的结点
// 参数:h-链表头指针,num-要查找的数据
// 返回值:找到了返回该结点的地址,否则返回NULL
node * search(node * h, int num);
// 函数insertSort:链表排序插入
// 参数:h-链表头指针,t-指向要插入的结点
// 返回值:插入结点后链表的首结点地址
node * insertSort(node *h, node *t);
// 函数insertHead:链表头部插入
// 参数:h-链表头指针,t-指向要插入的结点
// 返回值:插入结点后链表的首结点地址
node 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【执珪】瑕瑜·夕环玦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值