首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
ios13
macos
ipad
safari
ios9
objective-c
keychain
swift
ios15
ios10
build
xcode
ios
ios11
ios8
iphonex
cocoa
iphone
crash
sqlite
dialog
phonegap
当前位置:
开发笔记
>
IOS
> 正文
C++模版双向链表的实现详解
作者:淘气小顽童刘 | 来源:互联网 | 2021-08-16 06:33
本篇文章是对C++中的模版双向链表进行了详细的分析介绍,需要的朋友参考下
代码如下所示:
代码如下:
#include
template
class double_linked
{
struct node
{
T data;
node* prev;
node* next;
node(T t, node* p, node* n) : data(t), prev(p), next(n) {}
};
node* head;
node* tail;
public:
double_linked() : head( NULL ), tail ( NULL ) {}
template
double_linked( T (&arr) [N]) : head( NULL ), tail ( NULL )
{
for( int i(0); i != N; ++i)
push_back(arr[i]);
}
bool empty() const { return ( !head || !tail ); }
operator bool() const { return !empty(); }
void push_back(T);
void push_front(T);
T pop_back();
T pop_front();
~double_linked()
{
while(head)
{
node* temp(head);
head=head->next;
delete temp;
}
}
};
template
void double_linked
::push_back(T data)
{
tail = new node(data, tail, NULL);
if( tail->prev )
tail->prev->next = tail;
if( empty() )
head = tail;
}
template
void double_linked
::push_front(T data)
{
head = new node(data, NULL, head);
if( head->next )
head->next->prev = head;
if( empty() )
tail = head;
}
template
T double_linked
::pop_back()
{
if( empty() )
throw("double_linked : list empty");
node* temp(tail);
T data( tail->data );
tail = tail->prev ;
if( tail )
tail->next = NULL;
else
head = NULL ;
delete temp;
return data;
}
template
T double_linked
::pop_front()
{
if( empty() )
throw("double_linked : list empty");
node* temp(head);
T data( head->data );
head = head->next ;
if( head )
head->prev = NULL;
else
tail = NULL;
delete temp;
return data;
}
int main()
{
int arr[] = { 4, 6, 8, 32, 19 } ;
double_linked
dlist ( arr );
dlist.push_back( 11 );
dlist.push_front( 100 );
while( dlist )
std::cout <
}
ios
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
ios
Vue 2 中解决页面刷新和按钮跳转导致导航栏样式失效的问题
本文介绍了如何通过配置路由的 meta 字段,确保 Vue 2 项目中的导航栏在页面刷新或内部按钮跳转时,始终保持正确的 active 样式。具体实现方法包括设置路由的 meta 属性,并在 HTML 模板中动态绑定类名。 ...
[详细]
蜡笔小新 2024-12-28 13:45:20
ios
深入理解KMP算法中的next数组:北大OJ 2406题解
本文详细探讨了KMP算法中next数组的构建及其应用,重点分析了未改良和改良后的next数组在字符串匹配中的作用。通过具体实例和代码实现,帮助读者更好地理解KMP算法的核心原理。 ...
[详细]
蜡笔小新 2024-12-28 11:30:01
ios
通过类型和标签选择元素
本文介绍了如何使用jQuery根据元素的类型(如复选框)和标签名(如段落)来获取DOM对象。这有助于更高效地操作网页中的特定元素。 ...
[详细]
蜡笔小新 2024-12-27 19:44:14
ios
C++实现经典排序算法
本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ...
[详细]
蜡笔小新 2024-12-27 19:25:14
ios
词根词缀解析:greg、hap、helio及其他词源故事
本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ...
[详细]
蜡笔小新 2024-12-27 18:59:50
ios
如何在剪映中进行视频镜像处理
本文将详细介绍如何使用剪映应用中的镜像功能,帮助用户轻松实现视频的镜像效果。通过简单的步骤,您可以快速掌握这一实用技巧。 ...
[详细]
蜡笔小新 2024-12-27 18:56:09
ios
USACO 2014 Jan - Moolympics区间记录优化算法
题目描述:给定n个半开区间[a, b),要求使用两个互不重叠的记录器,求最多可以记录多少个区间。解决方案采用贪心算法,通过排序和遍历实现最优解。 ...
[详细]
蜡笔小新 2024-12-27 18:14:31
ios
Xcode 中多行代码缩进技巧
本文介绍如何在 Xcode 中使用快捷键和菜单命令对多行代码进行缩进,包括右缩进和左缩进的具体操作方法。 ...
[详细]
蜡笔小新 2024-12-27 17:52:34
ios
如何在PHPcms网站中添加广告
本文详细介绍了在PHPcms网站后台添加广告的方法,涵盖多种常见的广告形式,如百度广告和Google广告,并提供了相关设置的步骤。同时,文章还探讨了优化网站流量的SEO策略。 ...
[详细]
蜡笔小新 2024-12-27 17:13:07
ios
iOS设备进入安全模式的操作指南
当iOS设备越狱后,某些插件可能会导致系统崩溃(白苹果)。此时,可以通过进入安全模式来排查并删除有问题的插件。本文将详细介绍如何通过特定按键组合进入不加载MobileSubstrate的安全模式,并提供相关背景知识。 ...
[详细]
蜡笔小新 2024-12-27 14:52:34
ios
在Linux系统中配置并启动ActiveMQ
本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ...
[详细]
蜡笔小新 2024-12-27 14:38:54
ios
C++: 实现基于类的四面体体积计算
本文介绍如何使用C++编程语言,通过定义类和方法来计算由四个三维坐标点构成的四面体体积。文中详细解释了四面体体积的数学公式,并提供了两种不同的实现方式。 ...
[详细]
蜡笔小新 2024-12-27 14:31:39
ios
使用Windows批处理脚本监控并重启Java应用程序
本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ...
[详细]
蜡笔小新 2024-12-27 10:44:39
ios
如何优化2060显卡设置以提升《Apex英雄》游戏体验
《Apex英雄》作为一款热门的战术竞技游戏,吸引了大量玩家。本文将探讨如何通过优化GeForce RTX 2060显卡设置,确保在《Apex英雄》中获得最佳性能和流畅的游戏体验。 ...
[详细]
蜡笔小新 2024-12-27 10:21:13
ios
移动 UI 设计基础:打造简洁高效的用户界面
本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ...
[详细]
蜡笔小新 2024-12-27 08:43:40
淘气小顽童刘
这个家伙很懒,什么也没留下!
Tags | 热门标签
ios13
macos
ipad
safari
ios9
objective-c
keychain
swift
ios15
ios10
build
xcode
ios
ios11
ios8
iphonex
cocoa
iphone
crash
sqlite
dialog
phonegap
RankList | 热门文章
1
OpenGL - 从小于该屏幕的屏幕复制纹理 - OpenGL - Copy texture from screen smaller than that screen
2
备战秋招——数据库(1)
3
Java中自动生成实体类
4
Python网络爬虫快速上手!零基础入门教程!
5
Sublime Text如何设置文本自动换行?Sublime Text设置文本自动换行的方法
6
好记性不如烂笔头73-多线程-继承thread实现简单多线程
7
JavaScript中函数的四种调用模式
8
[手机]小弟来教教大家怎么分辨水货 行货手机 假货和二手手机 超级详细板
9
微信小程序底部导航tabbar
10
打破双亲委派么,怎么打破_打破了vs你错了
11
开发笔记:小白python机器学习之路——支持向量机
12
python list add_有什么区别列表.追加(1) and LIST=LIST+[1](Python)
13
django 多个模板嵌套extends
14
项目|技术_高质量面试总结
15
DOM应用遍历网页中的元素
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有