(数据结构与算法)经典线性表(链表实现)

本文介绍了数据结构中的线性表概念,包括其定义、特点,并着重讨论了链表表示的线性表。文章通过C/C++代码展示了链表的插入和删除操作,分析了链表与顺序表在这些操作上的时间复杂度差异,强调了链表在某些操作上的优势。此外,还提及了按值和按位查找的时间复杂度,并推荐了《算法竞赛入门经典(第二版)》一书。
摘要由CSDN通过智能技术生成

线性表(顺序表和链表)

(有一个大神朋友跟我说,学数据结构,就得自己动手写出这是什么,用程序做出它是怎么做的)
我们接触的数据结构有:线性结构和非线性结构。
我们常见到的线性结构:线性表、栈、队列
今天我们来看看这个一直说到的线性表。

关于线性表
定义:线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列。(n为表长,n=0时线性表是一个空表)

特点:①元素个数有限;②具有逻辑上的顺序性,元素有先后次序之分;③除表头元素外,每个元素有且仅有一个直接前驱;④除表尾元素外,每个元素有且仅有一个直接后继;⑤各元素的数据类型相同(占用相同大小的存储空间)

线性表的链式表示
<代码实现:C/C++>

template <typename T>
struct list_node {
	T data;
	list_node* next;
	list_node(T data) {
		this->data = data;
		this->next = nullptr;
	}
	list_node() = default;
};
template <typename T>
class MyList {
private:
	list_node<T>* head;
	int size;
public:
	MyList() {
		size = 0;
		head = new list_node<T>;
		assert(head != nullptr);
	}
	~MyList() {
		list_node<T
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值