c++链表(用类加模板)

来源:互联网 发布:java技术培训 编辑:程序博客网 时间:2024/06/08 06:27

上周学的c的链表,我想用c++中的模板加类来提高链表的可扩展性。 自己的一些拙见,望见谅。

话不多说,贴代码才是王道
(为了方便指针倒置加了一下小插曲)

#include <stdio.h>#include <stdlib.h>template <typename t>//这是模板类型定义tclass links {private:    t *head=NULL;//头指针    t *_end;//为方便倒置而定义的尾指针public:    links(t *p){head=p;p->next=NULL;p->_forward=NULL;} //p为已存在的节点p中的_forward是前一个节点,也是方便倒置而设计的,构造函数初始化    void _insert(t *p){        t *h=head;        while(h->next!=NULL){            h=h->next;        }        h->next=p;        p->next=NULL;        p->_forward=h;        _end=p;    }//插入的方法,在结尾插入一个节点    void _start_show(){        t *h=head;        while(h!=NULL){            printf("%d\n",h->data);            h=h->next;        }    }//从头到尾显示    void _end_show(){        t *h=_end;        while(h!=NULL){            printf("%d\n",h->data);            h=h->_forward;        }    }//从尾到头显示    ~links(){        t *h=head;            while(h!=_end){                free(h);                h=h->next;        }        free(head);        free(_end);    }//析构函数释放指针};

需要其他方法的话可以在其中加,目前就写了这几个方法QAQ。
对于链表我的理解是,先最基本当然是一个结构体里面有个结构体指针指向下一个,但对于刚接触链表的人,比如我刚开始写的时候最难理解的还是指针的调用,什么时候需要分配内存,什么时候要进行指针赋值。在动手琢磨后顿悟。

定义一个指针并不代表着会为其分配内存,

这是我认为链表中最大的坑,也是很多教程会忽略的地方。

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 张佳宁老公 张佳宁混乱生活 张佳宁个人资料 张佳宁方否认怀孕 张佳宁真正老公 张佳宁图片 张佳宁比基尼照片 张佳宁唐砖 张佳宁文松白蛇传 张佳宁结婚了吗 张佳宁现实中结婚了吗 张佳宁生活中老公是谁 演员张佳宁个人资料 张玉宁孙佳怡离婚 黄佳怡 韩佳怡 於佳怡 张佳楠 张佳玮 张佳玮的父亲是张卫平 张佳琪 张佳琪名字打分 张佳航 张佳迪 秦立楚佳音医仙传人都市 沈佳音季泽昊 秦立楚佳音 沈佳音霍遇免费阅读目录 沈佳音 佳音英语 沈佳音霍遇目录 沈佳音霍遇 王佳音 静候佳音什么意思 佳音可欺 静候佳音意思 红楼重组家庭 张佳音 红楼之重组家庭张佳音格格党 医仙传人都市秦立楚佳音 大学校花张依婷 张侠魂