当前位置:  编程技术>c/c++/嵌入式

C++ 构造双向链表的实现代码

    来源: 互联网  发布时间:2014-10-17

    本文导语:  构造双向链表,不足之处,还望指正!  代码如下:// DoubleLinkedList.cpp : 定义控制台应用程序的入口点。//构造双向链表,实现从控制台输入,插入,删除,求大小size等操作#include "stdafx.h"#include using namespace std;//定义双向链表的...

构造双向链表,不足之处,还望指正! 
代码如下:

// DoubleLinkedList.cpp : 定义控制台应用程序的入口点。
//构造双向链表,实现从控制台输入,插入,删除,求大小size等操作
#include "stdafx.h"
#include
using namespace std;
//定义双向链表的节点
template
struct NODE
{
 NODE* pre;
 T data;
 NODE* next;
};
//定义双向链表容器
template
class DoubleLinkedList
{
public:
 DoubleLinkedList()
 {
  NODE* q = new NODE;
  if (q == NULL)
  {
   cout data = NULL;
  phead->next = NULL;

  T i;
  cout i)
  {
   NODE* p = new NODE;
   if (p == NULL)
   {
    cout next = p;
   p->pre = q;
   p->next = NULL;
   q = q->next;
  }
 }

 //容器大小方法
 int size()
 {
  NODE* p = phead->next;
  int count(0);
  while (p != NULL)
  {
   count++;
   p = p->next;
  }
  return count;
 }

 //输出DoubleLinkedLIst中的元素
 void print_elements()
 {
  NODE* p = phead->next;
  while (p != NULL)
  {
   cout data next;
  }
  cout next;
   }
   NODE* n = m->next;
   NODE* p = new NODE;
   if (p == NULL)
   {
    cout pre = m;
   p->data = e;
   p->next = n;
   n->pre = p;
  }
  else if (i == (this->size()+1))
  {
   NODE* m = phead;
   for (int j = 1; j < i; j++)
   {
    m = m->next;
   }
   NODE* p = new NODE;
   if (p == NULL)
   {
    cout pre = m;
   p->data = e;
   p->next = NULL;
  }
  else
  {
   cout next;
   if (p == NULL)
   {//所要删除的元素超过list的范围
    cout next = n;
   n->pre = m;
   delete p;
  }
  else
  {//删除元素为最后一个
   NODE* m = p->pre;
   m->next = NULL;
   delete p;
  }
 }
private:
 NODE* phead;
};
int _tmain(int argc, _TCHAR* argv[])
{
 //测试代码
  DoubleLinkedList mylist;
 mylist.print_elements();
 cout

    
 
 

您可能感兴趣的文章:

  • C++ I/O 成员 Constructors:构造器
  • 深入C++中构造函数、拷贝构造函数、赋值操作符、析构函数的调用过程总结
  • C++ Strings(字符串) 成员 Constructors:构造函数,用于字符串初始化
  • C++函数返回值为对象时,构造析构函数的执行细节
  • C++ STL Bitsets构造函数及成员函数解释及代码示例
  • C++友元函数与拷贝构造函数详解
  • c++ 构造函数的初始化列表
  • C++中拷贝构造函数的应用详解
  • C++类成员构造函数和析构函数顺序示例详细讲解
  • 深入C++拷贝构造函数的总结详解
  • C++ explicit构造函数实例解析
  • c++拷贝构造函数防篡改示例
  • c++类构造函数详解
  • C++中拷贝构造函数的总结详解
  • 深入解析C++中的构造函数和析构函数
  • c++基础语法:构造函数与析构函数
  • C++拷贝构造函数(深拷贝与浅拷贝)详解
  • c++中拷贝构造函数的参数类型必须是引用
  • c++基础语法:构造函数初始化列表
  • C++中复制构造函数和重载赋值操作符总结
  • C++构造函数初始化顺序详解
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Python类的构造函数,析构函数以及垃圾回收机制详细介绍及代码举例
  • 哈夫曼算法构造代码
  • python构造icmp echo请求和实现网络探测器功能代码分享
  • 哈希函数的构造方法及举例
  • 一个父类的构造函数的参数是(Applet applet),请问它的子类构造函数当中应怎样调用父类构造函数?
  • mongodb是哪个公司的以及它的内部构造
  • 请问师傅们这个类为什么没有构造函数呀?什么样的类不需要构造函数?
  • linux iis7站长之家
  • 构造方法到底怎么用,构造方法体中可以放些什么东西,它和一般方法有什么本质区别功能上
  • java构造函数示例(构造方法)
  • 有关Java构造函数的问题之一——缺省性
  • 调用另一个构造函数方法
  • C#私有构造函数的简单例子
  • C# 静态构造函数使用总结
  • java类构造器的调用时机?
  • Bean的构造函数问题
  • 构造函数、析构函数能否缺省?
  • linux 下 gdb 如何调试类构造
  • c# 引用类型构造器
  • 对象数组的构造函数调用问题
  • c# 值类型实例构造器
  • 有关构造器和方法的问题
  • 如何向javabean的构造函数传参数?
  • 构造函数




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3