C++数据结构---链表(链表节点创建)
来源:互联网 发布:室内装修设计软件 编辑:程序博客网 时间:2024/06/06 14:22
本文是为了以下创建链表更加方便,而编写的C++头文件,作用是创建一个节点类,此处不采用class,而用struct。
Struct和Class的区别在于:
二者的访问权限不同!!!!
前者:访问权限是public
后者:访问权限是private
节点类的头文件代码如下:
#ifndef LISTNODE_HH#define LISTNODE_HH#include<iostream>#define ListNodePosi(T) ListNode<T>* //后面使用方便,也可以不用此宏定义template <typename T> struct ListNode { //成员 T data; ListNodePosi(T) pred;//前驱节点,类型是ListNode型 LIstNodePosi(T) succ;//后继节点 ListNode() {}//默认构造函数 ListNode(T _Val, ListNodePosi(T) p = NULL, ListNodePosi(T) s = NULL) :data(_Val), pred(p), succ(s) {}//3个参数的构造函数 ListNodePosi(T) insertAsPred(T const& _Val);//作为前驱插入 ListNodePosi(T) insertAsSucc(T const& _Val);//作为后继插入};//作为前驱插入时,首先讲当前this节点的前驱的后继给待插入的节点x,然后再把前驱给x,前者是将x的前驱连接上,后者是将x的后继连接到当前this节点template <typename T>ListNodePosi(T) ListNode<T>::insertAsPred(T const& _Val){ ListNodePosi(T) x = new LideNode(_Val, pred, succ); pred->succ = x; pred = x; //(!!!注意!!!)这里必须是先pred->succ=x。因为如果pred=x先执行,那么this的前驱就是x了,在执行pred->succ时,pred->succ就是this本身。而不是this前一个节点。 return x;}//作为后继插入时,首先将当前this节点的***后继的前驱***给待插入的节点x,然后再把后继给x,前者是将x的后继连接上,后者是将x的前驱连接到当前this节点template <typename T>ListNodePosi(T) ListNode<T>::insertAsSucc(T const& _Val){ ListNodePosi(T) y = new LideNode(_Val, pred, succ); succ->pred = x; succ = x;//(!!!注意!!!)这里解释同上 return x;}#endif
参考:
清华大学邓俊辉教授《数据结构》
在此基础上,做了些许修改,使之更容易理解与调用。
本系列文章仅用于记录,用于学习,没有商业用途。
阅读全文
1 0
- C++数据结构---链表(链表节点创建)
- 链表创建节点
- 数据结构之单链表——带有节点的单链表的创建、插入和删除(C/C++)
- 单向链表的创建、节点删除、链表输出、翻转(写法参考计蒜客数据结构课程)
- C++数据结构---链表(链表创建)
- C++数据结构---二叉树(树的节点创建)
- 数据结构之链表(头节点链表)
- 数据结构 《3》----双向链表(带有头节点)
- 【数据结构】链表的实现(带头节点)
- 数据结构之单链表——带头节点和不带头节点(C/C++)
- 数据结构(第二天)单链表的基本操作,创建单链表,头插法,尾插法,删除节点,查询节点
- 数据结构c语言实现-链表(带和不带头节点)
- 【数据结构】C语言实现链表节点的插入和删除
- 数据结构 C语言实现 双向链表的增加与删除节点
- C语言数据结构(链表)单向链表的创建删除逆序
- (单向链表)数据结构的创建和功能函数(C语言)
- 数据结构之链表(C/C++)
- 数据结构--十字链表(相加,创建)
- 快速排序
- 度度熊与邪恶大魔王
- 金蝶K3 SQL报表系列-供应商科目余额表
- COM组件设计与应用之VC6中用ATL写组件
- sc2017新初三膜你赛4 比赛总结
- C++数据结构---链表(链表节点创建)
- 弄清楚作用域、执行上下文、变量对象、作用域链
- LintCode Python 合并排序数组
- 度度熊的01世界
- #14
- 2016中国大学生程序设计竞赛
- 多线程详解
- POJ 3740 Easy Finding 跳舞链模板
- MyBatis 笔记(一)——快速入门