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

用C++实现单向循环链表的解决方法

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

    本文导语:  用C++实现一个单向循环链表,从控制台输入整型数字,存储在单项循环链表中,实现了求链表大小。不足之处,还望指正! 代码如下:// TestSound.cpp : 定义控制台应用程序的入口点。//实现单向循环链表#include "stdafx.h"#include #incl...

用C++实现一个单向循环链表,从控制台输入整型数字,存储在单项循环链表中,实现了求链表大小。
不足之处,还望指正!
代码如下:

// TestSound.cpp : 定义控制台应用程序的入口点。
//实现单向循环链表
#include "stdafx.h"
#include
#include
using namespace std;
//定义链表一个节点的结构体
template
struct NODE
{
 T data;//节点的数据域
 NODE* next;//节点的指针域
};
//自定义链表容器(含有的方法与C++不尽相同)
template
class MyList
{
public:
 //构造函数,初始化一个头结点,data为空,next指向第一个节点
 MyList()
 {
  phead = new NODE;
  phead->data = NULL;
  phead->next = phead;
 }
 //析构函数,将整个链表删除,这里采用的是正序撤销
 ~MyList()
 {
  NODE* p = phead->next;
  while (p != phead)
  {
   NODE* q = p;
   p = p->next;
   delete q;
  }
  delete phead;
 }
 //复制构造函数
 MyList(MyList& mylist)
 {
  NODE* q = mylist.phead->next;
  NODE* pb = new NODE;
  this->phead = pb;
  while (q != mylist.phead)
  {
   NODE* p = new NODE;
   p->data = q->data;
   p->next = phead;
   pb->next = p;
   pb = p;
   q = q->next;
  }
 }
    //返回list表的大小
 int get_size();

 //将用户输入的integer数据,插入list表中
 void push_back();

 //将list表中的元素输出
 void get_elements();
 private:
 NODE* phead;
};
//返回list表的大小
template
int MyList::get_size()
{
 int count(0);
 NODE* p = phead->next;
 while (p != phead)
 {
  count ++;
  p = p->next;
 }
 return count;
}
//将用户输入的integer数据,插入list表中
template
void MyList::push_back()
{
 int i;
 cout i)
 {
  NODE* q = new NODE;

  p->next = q;
  q->data = i;
  q->next = phead;
  p = q;
 }
}
//将list表中的元素输出
template
void MyList::get_elements()
{
 NODE* q = phead->next;

 while (q != phead)
 {
  cout data next;
 }
 cout

    
 
 

您可能感兴趣的文章:

  • C++循环链表之约瑟夫环的实现方法
  • 如何用C++实现双向循环链表
  • java双向循环链表的实现代码
  • Base64编码原理详解及c++编码解码实现
  • 我实现了个J2EE技术的服务器,支持TCP、UDP和数据库,由于性能的原因,需要改为C或C++实现,我是C、C++新手,我该如何入手呢?看什么样的
  • c++实现MD5算法代码示例
  • java 与 C++ 实现后绑定的方法
  • c++通用模板类(template class)定义实现详细介绍
  • Qt实现的C++框架 qtioccontainer
  • 用C或C++实现主存的分配与回收
  • 在linux系统上,如何用C++实现获取和设置系统时间?
  • 文本压缩算法C++实现 Golden Huffman
  • C++标准库实现 libc++
  • C++的XMLRPC实现 XMLRPC++
  • Java/JavaScript API 的 C++ 实现 libj
  • c++ 连接两个字符串实现代码 实现类似strcat功能
  • c++在unix中如何实现CString的方法?或者说有没有替换CString的类?
  • 请问:java中如何实现C++中的sizeof()方法?
  • 用C或C++编程,模拟可变分区存储管理且首次适应的算法实现存储器的分配与回收
  • vim中如何实现c++代码编写的自动格式化和语法高亮的功能?
  • C++实现CreatThread函数主线程与工作线程交互的方法
  • 请教为什么在C++编译通过并实现的程序,在linux下就会出错
  • linux下c++怎样实现回调(CALLBACK)函数?
  • 在linux下如何用c++实现建立一个文件夹
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 单向链表能否用快速排序??如果能如何实现??
  • java单向链表的实现实例
  • Windows服务器下MySql数据库单向主从备份详细实现步骤分享
  • C语言单向链表的表示与实现实例详解
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • socket实现多文件并发传输,求助多线程实现问题?
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • interface 到底有什么用???实现接口,怎么实现??
  • 通过javascript库JQuery实现页面跳转功能代码
  • 怎么用Jsp实现在页面实现树型结构?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • php实现socket实现客户端和服务端数据通信源代码
  • 网站重定向用C语言实现iptables,ACL实现
  • flash AS3反射实现(describeType和getDefinitionByName)
  • 在linux下如何编程实现nslookup命令实现的IP地址和域名互相转换的功能?
  • boost unordered_map和std::list相结合的实现LRU算法
  • 求在freebsd+Squid下实现pc上网的透明代理的实现方法!给出具体配置方法的高分谢!
  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • linux下如实现与window下的驱动器实现文件共享??
  • 使用java jdk中的LinkedHashMap实现简单的LRU算法
  • qt如何实现:操作键盘实现数据的滚动?
  • iphone cocos2d 精灵的动画效果(图片,纹理,帧)CCAnimation实现
  • 我想用APPLET实现读取客户端的图片文件,该如何实现?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • PING是用TCP,还是用UDP来实现的?或是采用其它协议实现的?




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

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

    浙ICP备11055608号-3