数据结构(C++实现)--链表(2) 功能扩充
来源:互联网 发布:电力营销系统数据字典 编辑:程序博客网 时间:2024/06/05 00:39
在链表基本功能的基础上扩充一些功能。
1.在链表末尾增添一个元素Append():
template<class T>Chain<T>& Chain<T>::Append(const T&x){ ChainNode<T> *y; y->data = x; y->link = 0; if (first) { last->link = y; last = y; } else { first = last = y; } return *this;}
2.创建一个链表遍历器:
template<class T>class ChainIterator {public: T* Initialize(const Chain<T>& c)//返回的指针指向第一个结点 { location = c.first; if (location)return &location->data; return 0; } T* Next() //返回的指针指向下一个结点 { if (location)return 0; location = location->link; if (location)return &location->data; return 0; }private: ChainNode<T> *location;};
采用了链表遍历器后,可以在线性时间内输出链表元素,而之前得成员函数Output()输出复杂度为n^2.可以这样使用这个线性遍历器:
int *x;ChainNode<T> c;x = c.Initialize(X);while(X){cout<<*x<<' ';x = c.Next();cout<<endl;
0 0
- 数据结构(C++实现)--链表(2) 功能扩充
- 如何扩充数据结构
- C++对C的扩充(2)
- 扩充PE文件功能
- WINSOCK 的扩充功能
- 扩充INT21H的功能
- 扩充Visual Studio 功能
- Unity3D-扩充菜单栏功能
- 【密码学】C语言实现SHA-1填充和数据扩充
- 第十四章 数据结构的扩充
- 扩充数组方案实现
- keras实现扩充图片集
- 单链表的实现扩充
- 动手扩充FreeTextBox的功能
- Strings扩充String的功能
- 动手扩充FreeTextBox的功能
- 手动扩充FreeTextBox的功能
- JS扩充类型的功能
- JavaScript日记——实现图片的瀑布流和底部刷新
- HTTP协议详解
- JavaScript中的作用域问题
- 绕过后台登录,输入地址直接访问资源
- 欢迎使用CSDN-markdown编辑器
- 数据结构(C++实现)--链表(2) 功能扩充
- ueditor富文本编辑器
- Hadoop Reducer个数设置
- 关于在java6中使用XFire时碰到的一个问题Could not initialize Service
- C#之加加减减
- 1102. Invert a Binary Tree (25)
- 皮尔逊相关系数
- 关于快速幂取余运算问题
- hdu 5777 domino (贪心)