摘要: 这是一个系列的文章,主要目的是让初学者掌握链表的实现方法,并且从C过渡到C++。作者:重庆工程职业技术学院 万青第3篇文章中,add、insert方法的参数变成了指针,假设所有类的基类是Object,那么该指针是可以指向任何对象的。也就是说,链表节点可以容纳任意类型的数据(当然只是存了一个首地址)。不过更彻底的解决办法是用模板类: 1 #include<iostream> 2 using namespace std; 3 template<class T> 4 class CNode //节点类 5 { 6 public: 7 T data; 8 ... 阅读全文
posted @ 2012-12-22 18:10 Programmer168 阅读(164) 评论(0) 推荐(0)
摘要: 这是一个系列的文章,主要目的是让初学者掌握链表的实现方法,并且从C过渡到C++。作者:重庆工程职业技术学院 万青在第2篇文章中,用C++实现了链表,但是链表节点的内容有局限性,从add、insert方法可以看出,参数只能是int,不能随意换成别的类型。因此,本文中对链表类进行改良,add和insert方法用指针(指向包含数据的Object对象)作参数,更具有通用性,同时为后面的模板类埋下伏笔。 1 ////////////////////////////////////////////////////////////////////// 2 //改良版的链表类 3 //节点数据域改用... 阅读全文
posted @ 2012-12-22 17:32 Programmer168 阅读(177) 评论(0) 推荐(0)
摘要: 这是一个系列的文章,主要目的是让初学者掌握链表的实现方法,并且从C过渡到C++。作者:重庆工程职业技术学院 万青在第1篇文章中,由于采用C语言实现,数据和操作是分离的,对链表的操作(如add、del、insert)中都包含一个参数List *li。下面将采用C++实现,由于类的方法中隐含有this指针,在本类的方法中访问成员head、tail和length的时候,不再需要li作为参数。也就是说,C版本中的li->head变成了this->head,而“this->”是可以省略的,所以直接写head。另外,C++类中有构造函数和析构函数,所以创建链表的工作在构造函数中完成,清除 阅读全文
posted @ 2012-12-22 17:13 Programmer168 阅读(270) 评论(0) 推荐(0)
摘要: 这是一个系列的文章,主要目的是让初学者掌握链表的实现方法,并且从C过渡到C++。作者:重庆工程职业技术学院 万青本文设计一个带头结点的单向链表。和很多教程不同的是,采用了结构体来存储链表的首、尾指针和长度,并把结构体命名为List:typedef struct list{ Node *head,*tail; int length;}List;这样设计能很好地管理链表相关属性,并且在操作时能提供一些便利。下面的代码实现了链表的一些常用操作: 1 #include<stdio.h> 2 #include<malloc.h> 3 typedef struct node 4 { 阅读全文
posted @ 2012-12-22 16:43 Programmer168 阅读(285) 评论(0) 推荐(0)