手写单链表(指针)(next域)附图

目录

创建文件:

具体实现:

首先是头插。

注意:一定要注意:再定义tmp时,要给它赋一个初始值(推荐使用 new list_next)

接着是尾插:

随后是中间插:

然后是最简单的改值:

随后是删头:

 一定要注意(size--) 

删中间:

末尾:

oh,对了:


我们知道单链表,今天博主(也就是我)自己手写了一个单链表(用指针写的)现在我来分享一下。

创建文件:

我用三个来写(list.h,listfun.h,run.cpp)(run.cpp)用来调试

具体实现:

list.h

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<limits.h>
struct list_next{//链表的一个值
	int value;
	struct list_next *next;
};
struct list_make{//一条链表的结构
	list_next *head;
	list_next *tail;
	int size;
};
//void head_add(list_next* &head,int v,int &size);//头插 
//void tail_add(list_next* &tail,int v,int &size);//尾插 
//void add_node(list_next* head,int p,int v,list_next* tail,int &size);//插入 
//void change(list_next* head,int p,int v);//改值 
//void head_del(list_next* &head,int &size);//头删 
//void del_node(list_next* head,int p,list_next* &tail,int &size);//删除
//void init(list_make &p,int v) //初始化 

接下来就是核心的listfun.h

首先是头插。

函数定义:

void head_add(list_next* &head,int v,int &size)

(这里用了引用,不会的童鞋们请看->引用教程 

先用图来演示:(左边是值,右边是next域)

上图是原来的样子,tmp是要插入的数。

list_next* tmp=new list_next;
tmp->value=v;

 接着把tmp的next改成head。

tmp->next=head;

再把头换成tmp。

head = tmp;

 最后,size+1(因为长度增加了)

size++;

所以头插代码就是:

void head_add(list_next* &head,int v,int &size)
{
	list_next* tmp=new list_next;
	tmp->value=v;
	tmp->next=head;
	head = tmp;
	size++;
}
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值