C++单链表上查找算法的实现

建立一个长度为n的带头结点的单链表,在该表中寻找第i个结点,若找到,则输出ok,否则输出error。处理数据类型为整型。

输入

第一行为链表的长度n; 
第二行为链表中的数据元素;
第三行为要找的结点i。

输出

找到就输出ok,没找到就输出error。

样例输入

10
1 2 3 4 5 6 7 8 9 10
5

样例输出

ok
// 7单链表上查找算法的实现.cpp: 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
class List {
	public:
		List(int len);
		~List();
		bool find(int data);
	private:
		int data;
		List *Next;
};
List::List(int len) {
	int i;
	List *L, *Node;
	L = this;
	cin >> L->data;
	for (i = 1; i < len;i++) {
		Node = new List(1);
		L->Next = Node;
		L=L->Next;
	}
	L->Next = NULL;
}
bool List::find(int data) {
	List *L;
	L = this;
	while (L) {
		if (L->data==data) {
			return true;
		}
		L = L->Next;
	}
	return false;
}
List::~List() {
	if (this->Next) {
		delete this->Next;
	}
}
int main()
{
	int len = 0;
	int data = 0;
	cin >> len;
	List *Head = new List(len);
	cin >> data;
	if (Head->find(data)) {
		cout << "ok";
	}
	else {
		cout << "error";
	}
	delete Head;
    return 0;
}

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值