当前位置: 首页 > news >正文

算法竞赛阶段二-数据结构(35)数据结构单链表模拟实现

//链表--链式存储的线性表 
//存信息和下一个节点位置,数据域和指针域合起来叫节点
//带头(哨兵位)下标为0 
//单向,双向,循环链表
//实现 单
//俩足够大数组 
// elem,数据域 
// next ,指针域
//下标
//head,头结点下标;id新节点位置  h=0,id=0;
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10; 
//定义,初始化
int e[N],ne[N],h,id;
int mp[N]; 
//    头插,,兵 ,   ,下一节点 
//             (x)
void push_front(int x)
{
id++;
e[id]=x;
mp[x]=id; 
ne[id]=ne[h];
ne[h]=id;
//mp[x]=id;

// 遍历,打印 
void print() 
{
//    for(int i=1;i!=)
for(int i=ne[h];i;i=ne[i])
{
cout<<e[i]<<" ";
}
}
//按值查找下标 
int find (int x)
{

//    for(int i=ne[h];i;i=ne[i])
//    {
//        if(e[i]==x) return i; 
//    }return 0;

//按值查找方法二,重新标记数组哈希 cout<<mp[x];
// 太大开不了,不能存重复 
return mp[x];


//任意   存储  位置(实际存的下标的位置) 之 后 插入元素
//   p
//   x     y
//      z
void insert(int p,int x)
{
id++;
e[id]=x;
mp[x]=id;
ne[id]=ne[p];
ne[p]=id;

// 删除任意(存储位置p)之后位置
//    p
//    x    y     z      
void erase (int p) 
{
if(ne[p])
{

ne[p]=ne[ne[p]];
mp[e[ne[p]]]=0;

}
}

int main()
{
for(int i=0;i<6;i++)
push_front(i);// 5 4 3 2 1 0 
print();
cout<<endl<<find (5);//6
cout<<endl<<find (0);//1
cout<<endl;
insert(1 ,88);
print();
cout<<endl;
insert(6,99);
print();
cout<<endl;
insert(3 ,33);
print();
cout<<endl;
insert(7 ,100);
print();
cout<<endl;
insert(8 ,666);
print();
cout<<endl;
erase(4);
print();
cout<<endl;
erase(3);//第三个已经删没了


print();
cout<<endl;
erase(4);
print();
return 0;
}

http://www.lryc.cn/news/600689.html

相关文章:

  • Android-广播详解
  • golang实现一个定时引擎,功能包括按照corntab的时间任务实时增加、修改、删除定时任务
  • 常见sql深入优化( 二)
  • 一文学会c++list
  • 激光雷达-相机标定工具:支持普通相机和鱼眼相机的交互式标定
  • 二叉搜索树(Binary Search Tree)详解与java实现
  • Linux 如何统计系统上各个用户登录(或者登出)记录出现的次数?
  • Android-三种持久化方式详解
  • 摘录-打造第二大脑
  • J2EE模式---表现层集成模式
  • C++ TAP(基于任务的异步编程模式)
  • Web后端进阶:springboot原理(面试多问)
  • React入门学习——指北指南(第五节)
  • JavaScript手录06-函数
  • 【RK3568 PWM 子系统(SG90)驱动开发详解】
  • 数据赋能(336)——技术平台——智能化运营
  • Java动态调试技术原理
  • 【RocketMQ】一分钟了解RocketMQ
  • 告别复杂配置!Spring Boot优雅集成百度OCR的终极方案
  • Windows 平台源码部署 Dify教程(不依赖 Docker)
  • 《C++ list 完全指南:从基础到高效使用》
  • Linux——线程同步
  • InvokeRepeating避免嵌套调用
  • C++编程学习(第16天)
  • 7月26日京东秋招第一场第一题
  • 【第二章-数据的表示和运算】
  • 基于java的在线教育平台管理系统、在线学习系统的设计与实现
  • 【机器学习-2】 | 决策树算法基础/信息熵
  • 背包问题及 LIS 优化
  • 【Ubuntu】发展历程