首页 > 其他分享 >单链表

单链表

时间:2024-08-18 12:26:16浏览次数:12  
标签:head 单链 idx int void ne add

//单链表
#include<iostream>
using namespace std;
const int N=1010;
int head,e[N],ne[N],idx;
//初始化
void init()
{
	head=-1;
	idx=0;
}
//插入
void add_to_head(int x)
{
	e[idx]=x;
	ne[idx]=head;
	head=idx;
	idx++;
}
//将 x 插到下标为 k 的点的后面
void add(int k,int x)
{
	e[idx]=x;
	ne[idx]=ne[k];
	ne[k]=idx;
	idx++;
}
//单链表的删除操作
void remove(int k)
{
	ne[k]=ne[ne[k]];
}

int main()
{
	int m;
	cin>>m;
	init();
	while(m--)
	{
		int k,x;
		char op;
		cin>>op;
		if(op=='H')
		{
			int x;
			add_to_head(x);
		}
		else if(op=='D')
		{
			cin>>k;
			if(!k) head=ne[head];
			//从0号点开始插入的,第 k 个点的下标是 k-1
			remove(k-1);
		}
		else 
		{
			cin>>k>>x;
			add(k,x);
		}
	}
	for(int i=head; i!=-1; i=ne[i])
		cout<<e[i]<<' ';
	cout<<endl;
	return 0;
}

标签:head,单链,idx,int,void,ne,add
From: https://blog.csdn.net/LH_050902/article/details/141297860

相关文章

  • 【数据结构】详细剖析链表,带你实现单链表,双向链表,附链表编程练习题
    目录一.链表1.链表的概念及结构2.单链表的实现2.1单链表节点结构2.2动态申请一个节点2.3单链表打印2.4单链表尾插2.5单链表头插2.6单链表尾删2.7单链表头删2.8单链表查找 2.9单链表在pos后一位插入x2.10单链表删除pos后一位的值2.11单链表销毁 ......
  • 【408DS算法题】016基础-倒序输出单链表的结点值
    Index题目分析实现总结题目给定单链表的头结点,倒序输出单链表的结点值。分析实现要倒序输出链表结点值,首先可以想到的是先将链表的结点值存储到数组中,然后利用数组随机访问的特性进行倒序输出。如果考虑其它思路的话,还可以使用栈来代替数组——将链表元素依次......
  • 数据结构+单链表应用
    一、问题描述编写程序实现两个有序表的交和差,令L1=(x1,x2,x3,...,xn),L2=(y1,y2,y3,...,yn),它们是两个线性表,采用带头结点的单链表存储,请先实现单链表存储两个链表,再完成如下功能:(1)sort:将单链表的所有结点按照数据域进行递增排序,构造成有序单链表;(2)interSect:求两个......
  • [YM]模板-单链表(超详细简洁模板)
    概念:链表是一种用于存储数据的数据结构,通过如链条一般的指针来连接元素。它的特点是插入与删除数据十分方便,但寻找与读取数据的表现欠佳,复杂度几乎是O(n)但其还是有很大的重要性是数据结构的开端模板:题目概述:相信大家对于单链表的操作已经游刃有余了,我们知道,对于一个单......
  • 单链表与双链表的代码实现
    单链表链表的概念链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表比数组的优势在于,它可以提供高效的重排数据的能力。这种灵活性的代价是不能快速访问表中的任意数据项,访问链表中数据项的唯一方式是沿着链表,一个......
  • 数据结构之线性表(单链表的实现)
    目录一、单链表的原理二、单链表的实现1.单链表的定义2.单链表的初始化3.清空单链表4.单链表是否为空5.单链表的长度6.获取指定位置i的元素7.获取指定元素e的位置  8.向链表中插入指定位置的元素9.向链表中删除指定位置的元素10.遍历链表中的元素三、打印测......
  • 单链表的增删查改
    头文件#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<assert.h>typedefstructMyStruct{   intdata;   structMyStruct*next;}SL;voidlistprint(SL**phead);//打印链表voidlistpushback(SL**phead,intx);/......
  • 【数据结构】单链表
    前言:小编这里将讨论无头单向非循环的单链表。1.ArrayList的缺陷 在上一期中,小编模拟了列表的相关操作实现,可以发现在增删的过程中非常麻烦,每次增加,或者删除数据的时候,都需要将操作下标的后面所有数据进行前移或者后移。上期博客:http://t.csdnimg.cn/VI2yz所以:由于其......
  • (链表基础)PTA习题11-8 单链表结点删除
    题目要求:本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中所有存储了某给定值的结点删除。链表结点定义如下:structListNode{intdata;ListNode*next;};函数接口定义:structListNode*readlist();structListNode*deletem(structListNode*L,......
  • c语言数据结构单链表中随机链表的复制
    c语言数据结构单链表中随机链表的复制文章目录c语言数据结构单链表中随机链表的复制1.随机链表的复制问题2.解决思路3.代码的实现1.随机链表的复制问题给你一个长度为nn......