数据结构(C++描述):有序链表操作

这篇博客探讨如何使用C++创建有序链表,包括插入元素、查找元素位置及合并两个有序链表。通过用户输入整数,实现链表的动态构建,并输出链表状态。特别强调了单节点链表的处理情况。
摘要由CSDN通过智能技术生成

题目要求:

  1. 输入n个不为零的整数作为节点元素值,遇到0代表输入结束(不创建元素值为0的节点),创建有序链表。输出整个链表。
  2. 输入一个整数,将该数插入到有有序链表相应位置。输出整个链表。
  3. 输入一个整数,在链表中进行搜索,输出其在链表中的第一个出现的位置。如果不存在输出0。
  4. 再一次输入一个整数,在链表中进行搜索,输出其在链表中的第一个出现的位置。如果不存在输出0。
  5. 再一次输入n个不为零的整数作为节点元素值,遇到0代表输入结束(不创建元素值为0的节点),创建一个新的有序链表。输出整个链表。
  6. 使用链表遍历器实现上面两个有序链表的合并,输出合并后的有序链表。
    (提示:注意单节点链表的测试。)

//my solution
#include <iostream>
using namespace std;

template<class T>
struct chainNode
{
   
public:
	T element;
	chainNode<T>* next;

	chainNode() {
   }
	chainNode(const T& theElement) {
    element = theElement; next = NULL; }//当只有数据域传入时,将数据域初始化为NULL
	chainNode(const T& theElement, chainNode<T>* theNext)
	{
   
		element = theElement;
		next = theNext;
	}
};

template<class T>
class ordinalChain
{
   
public:
	//构造函数,复制构造函数,析构函数
	ordinalChain() {
    firstNode = NULL; listSize = 0; }
	ordinalChain(const ordinalChain<T>&);
	~ordinalChain();

	//insert(),size(),indexOf(),output()
	int size() const {
    return listSize; }
	void insert(const T&);
	int indexOf(const T&) const;
	void output(ostream& out) const;
	friend ostream& operator<<(ostream& out, const ordinalChain<T>& c)
	{
   
		c.output(out);
		return out;
	}

	//iterator define
	class iterator
	{
   
	public:
		//construction
		iterator(chainNode<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值