单链表基本操作代码实现【数据结构笔记】

本程序实现的单链表是带头结点的单链表,头结点相当于一个全局变量。
本程序利用了C++的模板功能。

1、指定位序插入
2、清空线性表
3、查询元素
4、指定位序删除
5、遍历
6、指定位序元素获取
7、线性表长度获取

LinkList.h

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
typedef int Status;

//模板
template<typename DataType>
struct LinkNode 
{
   
	DataType data;
	struct LinkNode* next;
};

//线性表的头结点定义,不同于一般的数据节点,相当于是一个全局变量
template<typename DataType>
struct LinkList
{
   
	LinkNode<DataType>* head;	//L是头结点,head是头指针?
	int length;
};

//线性表的初始化操作
template<typename DataType>
void InitList(LinkList<DataType> &L)
{
   
	L.length = 0;
	L.head = NULL;
}

//线性表指定位序插入
template<typename DataType>
Status ListInsert(LinkList<DataType> &L,int i,DataType e)
{
   
	//合法性检验
	if (i > L.length + 1 || i < 0)
		return FALSE;

	//申请一个结点,并进行初始化设置
	LinkNode<DataType>* p = new LinkNode<DataType>;

	//内存分配失败
	if (!p) return FALSE;

	//初始化新结点
	p->next = NULL;
	p->data = e;

	if (i == 1)	//1位置进行特殊处理,即插入头结点之后
	{
   
		p->next = L.head;		//p指向首结点
		L.head 
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值