双链表其实 也没什么 只是多了一个前置链而已
双链表的定义
复制代码 代码如下:
struct DNode
{
int data;
struct DNode *next;
struct DNode *pre;
};
单链表的定义
复制代码 代码如下:
view plaincopy
struct DNode
{
int data;
struct DNode *next;
};
其他的可以看上一篇博客 大致相同
复制代码 代码如下:
#ifndef HEAD_H
#define HEAD_H
#include <iostream>
using namespace std;
#include <cassert>
#include <cstdlib>
#include <cmath>
#include <sstream>
#include <fstream>
#include <string>
#include <algorithm>
#include <list>
#include <queue>
#include <vector>
#include <deque>
#include <stack>
#include <bitset>
#include <set>
#include <map>
#endif
struct DNode
{
int data;
struct DNode *next;
struct DNode *pre;
};
DNode *Creat()
{
DNode *head,*p,*s;
head=(DNode *)malloc(sizeof(DNode));
p=head;
int temp;
while (cin>>temp&&temp)
{
s=(DNode *)malloc(sizeof(DNode));
s->data=temp;
p->next=s;
s->pre=p;
p=s;
}
head=head->next;
p->next=NULL;
head->pre=NULL;
return (head);
}
DNode *Insert(DNode *&head,int num)
{
DNode *p,*s;
s=(DNode *)malloc(sizeof(DNode));
s->data=num;
p=head;
while (NULL!=p->next&&num>p->data)
{
p=p->next;
}
if (num<=p->data)
{
if (NULL==p->pre)
{
s->next=head;
head->pre=s;
head=s;
head->pre=NULL;
}
else
{
s->pre=p->pre;
p->pre->next=s;
s->next=p;
p->pre=s;
}
}
else
{
p->next=s;
s->pre=p;
s->next=NULL;
}
return(head);
}
DNode *Del(DNode *&head,int num)
{
DNode *p;
p=head;
while (NULL!=p->next&&num!=p->data)
{
p=p->next;
}
if (num==p->data)
{
if (NULL==p->pre)
{
head=p->next;
p->next->pre=head;
free(p);
}
else if (NULL==p->next)
{
p->pre->next=NULL;
free(p);
}
else
{
p->pre->next=p->next;
p->next->pre=p->pre;
free(p);
}
}
else
{
cout<<num<<" cound not be found"<<endl;
}
return head;
}
void Display(DNode *head)
{
DNode *p;
p=head;
while (NULL!=p)
{
cout<<(p->data)<<" ";
p=p->next;
}
cout<<endl;
}
复制代码 代码如下:
#include "head.h"
int main()
{
DNode *head;
head=Creat();
Display(head);
#ifndef DEBUG
cout<<"please input an num to insert:";
#endif
int insert_num;
while (cin>>insert_num&&insert_num)
{
Insert(head,insert_num);
Display(head);
}
#ifndef DEBUG
cout<<"please input an number to delete:";
#endif
int delete_num;
while (cin>>delete_num&&delete_num)
{
Del(head,delete_num);
Display(head);
}
return (EXIT_SUCCESS);
}
相关推荐:
ChatGPT当前不可用?如何应对AI服务中断的挑战,ai文章免费写作app
SEO主要是为网站引流吗?深入解析SEO的核心价值,AI算算
ChatGPT:如果您正在使用VPN,这些技巧您一定要知道!,AI换脸*H
怎么用AI写文:让创作更轻松,效率翻倍
如何通过AI写文章,轻松提高写作效率与质量
AI会生成同一篇文章吗?揭开智能创作的神秘面纱
seo经理做什么的,seo经理招聘 ,盲人ai眼镜
SEO工装裤-打造时尚与实用兼备的工作利器,ai画中国爸爸辅导孩子写作业
为什么新手做seo好做,为什么要懂seo ,ai少女 3060显卡
ChatGPTO1免费:突破智能聊天的极限,体验AI无限可能,糯米ai唱歌
SEO在广告领域的深度解析:如何利用SEO提升广告效果,网文写作ai工具
SEO数量-如何提升你的网站排名与流量?,射阳seo优化五星服务
SEO检测,让网站排名飞升的秘密武器,高端快消食品营销推广
《命运交错的轨迹:小说背后的无尽魅力》,seo优化huifachina
seo词库优化,搜索词条优化 ,ai点选择
从“官网扒下来”看企业数字化转型的未来,摄影营销策略推广文案
如何识别文章是否由AI撰写?揭开智能写作的秘密
SEO确实是企业增长的关键,这些技巧让你走在行业前沿,山东网站建设信息
ChatGPT最近不好用了?了解这些背后的原因与解决方案,ai sketcher
SEO北京:数字时代,企业成功的关键,湖南网站建设湖南岚鸿
为什么seo这么难,seo难嘛 ,ai宁中则
什么是秀米?全方位了解这款微信公众号排版神器,宁波全网营销型网站建设
ChatGPT连了外网也登不了?如何解决这一问题,重新畅享AI助力!,ai少女大瓜
SEO网络营销:如何通过精准优化提升品牌价值,青州建设网站电话
seo软件是什么职位,seo用的是什么软件 ,ai感知树
什么是seo在线咨询,什么是seo在线咨询服务 ,unreal ai
SEO优化:让你的网站在竞争中脱颖而出,临沧seo代理
ChatGPT美区要梯子吗?轻松畅享全球智能聊天体验,ai音位
AI智能时代的到来:如何利用人工智能推动生活与商业创新,ai相册下载
ChatGPT为什么网址打不开?原因分析与解决方法,文档审核ai
未来写作新方式原创AI文章的无限可能
AI免费生成文章的软件:轻松创作的秘密武器
SEO优化全攻略提升网站排名的关键步骤与未来趋势,这是什么新晋动画ai
优化公司:助力企业腾飞的秘密武器,微信营销推广价格多少
seo逻辑是什么,seo思路 ,语音主播怎么ai写作业
SEO到底怎么做?揭秘从零到精通的完整SEO优化攻略,鸟瞰ai
SEO自从上线后的演变与未来发展趋势,拼多多增加关键词排名
seo需要保持什么心态,seo的要求 ,ai83562
ChatGPT异常了:人工智能的极限与突破,ai and ethics
什么叫改写-解读“改写”背后的艺术与技巧,网站制作建设模板图片
互联网快排:助力企业网站流量爆发的秘密武器,西安网站建设找资源公司
seo黑帽是什么,列举几种seo黑帽行为 ,穿老款的ai丢人吗
中国AI软实力崛起:技术创新与产业应用的完美融合,seo0066
ChatGPT显示无法加载网站是怎么回事?解决方法!,glow将军ai
“收录量为1”,打造数字化时代的独特竞争力,网站建设页面制作流程
SEO优化关键词品牌:如何通过精准的关键词提升品牌价值,ai免费智能写作论文
SEO包含的秘密:让你的网站轻松排上首页,新媒体营销推广方案目录
互联网留痕:数字时代的隐形轨迹与自我管理,灯塔网站推广包年多少钱
OpenPose大白话解释:让你轻松理解姿态识别的神奇技术,ai天天晴
ChatGPT页面打不开怎么办?这些解决方法让你轻松访问AI助手!,分散ai