iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++中怎么实现一个单向链表
  • 612
分享到

C++中怎么实现一个单向链表

2023-06-17 16:06:24 612人浏览 安东尼
摘要

c++中怎么实现一个单向链表,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。C++单向链表实现代码:#include < iOStream>&

c++中怎么实现一个单向链表,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

C++单向链表实现代码:

  1. #include < iOStream>   

  2. using namespace std;   

  3. template < class T>   

  4. struct node   

  5. {   

  6. //public:   

  7. // 结构体成员默认就是public的  

  8. T data;   

  9. node< T> *next;   

  10. };   

  11. //typedef struct node NODE;   

  12. //typedef NODE *NODEPTR;   

  13. //typedef后面要跟具体的类类型,而不是一个类模版。eg: typedef node< T> 
    NODE (C++中,实例化结构体时struct可省略)  

  14. template < class T>   

  15. class list   

  16. {   

  17. public:  

  18. //以下三个函数要供外部调用,所以要声明为public,class默认为private。  

  19.  

  20. //这三个函数的参数有问题,按照下文的实现,我认为应改为如下:  

  21. void creat(T *p);  

  22. void print(T *p);  

  23. void destroy(T *p);  

  24. };   

  25. template< class A>   

  26. //void creat(A &p)   

  27. void list< A>::creat(A *p)  

  28. {   

  29. //class node *q;   

  30. //形参里的A就是这个程序的node类型  

  31. char ch = 0; //下数第4行cin>>ch 中的ch未定义,在此补充  

  32. A *q = NULL;  

  33. q=p; //必须新增这一句,q用于以后的动态分配  

  34. cout< < "input"< < endl;   

  35. cin>>ch;  

  36. // if(!p) //这个if放在while里会影响效率,故移到while外边,
    改过程序之后,实际上用不着了  

  37. // {   

  38. //p=new struct node;   

  39. //语法错误,形参里的A就是这个程序的node类型  

  40. // p = new A();  

  41. if(ch!='#')  

  42. p->data=ch;   

  43. // }   

  44. cin>>ch;  

  45. while(ch!='#')   

  46. {   

  47. //q->next=new class node;   

  48. //语法错误,形参里的A就是这个程序的node类型  

  49. q->next = new A();  

  50. //q->next=ch;   

  51. //这句应该是给data赋值  

  52. q->next->data = ch;  

  53. qq = q->next; //必须新增这一句,q用于以后的动态分配  

  54. cin>>ch;   

  55. }   

  56. q->next=NULL;   

  57. }   

  58. template < class T>   

  59. void list< T>::print(T *p)   

  60. {   

  61. if(p)   

  62. {   

  63. cout< < p->data< < " ";   

  64. print(p->next);   

  65. }   

  66. }  

  67. template < class T>   

  68. void list< T>::destroy(T *p)   

  69. {   

  70. if(p)   

  71. {   

  72. destroy(p->next);   

  73. delete p->next;   

  74. }   

  75. }   

  76. int main()   

  77. {   

  78. // NODEPTR p;   

  79. node< int> p;  

  80. // list L; 模版要有参数  

  81. list<  node< int> > L;  

  82. L.creat(&p);   

  83. cout < <  endl < <  endl < <  "show:" < < endl;  

  84. L.print(&p);   

  85. L.destroy(&p);  

  86. return 0;   

关于C++中怎么实现一个单向链表问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网其他教程频道了解更多相关知识。

--结束END--

本文标题: C++中怎么实现一个单向链表

本文链接: https://www.lsjlt.com/news/290819.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c语言怎么计算字符串长度
    在C语言中,可以使用内置的strlen()函数来计算字符串的长度。该函数位于string.h头文件中。以下是一个示例代码: #inc...
    99+
    2024-05-14
    c语言
  • c语言怎么判断三个数的大小
    可以通过比较三个数之间的大小关系来判断它们的大小。以下是一个示例代码: #include <stdio.h> int ...
    99+
    2024-05-14
    c语言
  • c++排序函数sort怎么使用
    在C++中,使用sort函数对容器中的元素进行排序,可以按照默认的升序排列,也可以自定义排序规则。 下面是一个简单的例子,对一个ve...
    99+
    2024-05-14
    c++
  • c++中string的compare函数怎么使用
    在C++中,可以使用string的compare函数来比较两个string对象的大小。该函数的原型如下: int compare(c...
    99+
    2024-05-14
    c++
  • c++中string的compare函数有什么用
    c++中string的compare函数用于比较两个字符串的大小关系。该函数返回一个整数值,表示两个字符串的比较结果。 具体来说,如...
    99+
    2024-05-14
    c++
  • c++中print函数的功能有哪些
    在C++中,通常使用std::cout来进行输出操作,而不是使用print函数。std::cout是C++标准库中的一个输出流对象,...
    99+
    2024-05-14
    c++
  • c语言数据结构怎么使用
    在C语言中,数据结构可以通过定义结构体来实现。以下是一些常见的数据结构的使用方法示例: 链表: #include <std...
    99+
    2024-05-14
    c语言
  • c++中print函数的用法是什么
    在C++中没有内置的print函数,但可以使用cout来输出内容到控制台。cout是C++标准库中的一个输出流对象,可以使用<...
    99+
    2024-05-14
    c++
  • c++中concept的用法是什么
    在C++20中,Concept是一种新的语言特性,用于定义类型要求和约束。Concept可以被用来约束函数模板、类模板和普通函数的参...
    99+
    2024-05-14
    c++
  • c++中concept的作用是什么
    在C++中,concept的作用是定义一种通用的约束,用于限制模板参数的类型范围。通过使用concept,可以在编译时对模板参数进行...
    99+
    2024-05-14
    c++
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作