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

算法竞赛阶段二-数据结构(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.xdnf.cn/news/16263.html

相关文章:

  • Node.js 模拟 Linux 环境
  • 【每天一个知识点】GAN(生成对抗网络,Generative Adversarial Network)
  • Whisper语音转文字
  • 【洛谷】单向链表、队列安排、约瑟夫问题(list相关算法题)
  • 互联网应用主流框架整合 Spring Boot开发
  • Linux DNS 服务器正反向解析
  • 【IMMCKF】基于容积卡尔曼滤波(CKF)的多模型交互的定位程序,模型为CV和CT,三维环境,matlab代码|附下载链接
  • Nestjs框架: 基于Mongodb的多租户功能集成和优化
  • 算子推理是什么
  • 电脑开机后网络连接慢?
  • (Python)文件储存的认识,文件路径(文件储存基础教程)(Windows系统文件路径)(基础教程)
  • 【17】C# 窗体应用WinForm ——【文本框TextBox、富文本框RichTextBox 】属性、方法、实例应用
  • C++:list(2)list的模拟实现
  • Java中配置两个r2db连接不同的数据库
  • JavaScript:现代Web开发的核心动力
  • Mistral AI开源 Magistral-Small-2507
  • C++查询mysql数据
  • Codeforces Round 181 (Rated for Div. 2)
  • Bert项目--新闻标题文本分类
  • DAY31 整数矩阵及其运算
  • 告别镜像拉取慢!CNB无痛加速方案,一键起飞
  • [论文阅读] 人工智能 + 软件工程 | NoCode-bench:评估LLM无代码功能添加能力的新基准
  • JVM常见工具
  • swagger基本注解@Tag、@Operation、@Parameters、@Parameter、@ApiResponse、@Schema
  • 基于图神经网络的星间路由与计算卸载强化学习算法设计与实现
  • 【Linux手册】操作系统如何管理存储在外设上的文件
  • 基于 Claude Code 与 BrowserCat MCP 的浏览器自动化全链路构建实践
  • iOS 26,双版本更新来了
  • 【web大前端】001_前端开发入门:创建你的第一个网页
  • 二十八、【Linux系统域名解析】DNS安装、子域授权、缓存DNS、分离解析、多域名解析