常见笔试面试题:实现一个递增排序的单链表

本文介绍如何实现一个递增排序且不允许重复的单链表,包括插入元素、清空、比较链表相等和查找元素等操作。关键在于插入元素时,根据链表状态判断插入位置,利用递归处理复杂情况。
摘要由CSDN通过智能技术生成

题目:实现一个递增排序的单链表(不允许重复),即每次向链表中插入一个或多个元素后都能保证链表仍是递增有序的,在此基础上实现一些基本操作,如插入元素、清空元素、判断两个链表是否相等及查找某个指定的元素。


为了实现该功能,首先定义一个头文件linked_list.h声明单链表的基本操作:

#ifndef LINKED_LIST_H_
#define LINKED_LIST_H_

#define _INVALID 0xFFFFFFFF

class linked_list {

	// value
	unsigned int data;
	
	// pointer to the next node in list
	linked_list *next;

public:

	// instantiated a linked list with the element value. If value is not specified
	// an empty list is instantiated
	linked_list(unsigned int value = _INVALID);

	// destructor
	~linked_list();

	// check if the list is empty
	bool empty();

	// insert a value into the list.
	void insert(unsigned int value);

	// insert all the values from list into the current linked list.
	void add(linked_list *list);

	// get the size of the linked list.
	int size();

	// is the current set equal to s (does it contains t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值