温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-07-19 17:51:28 阅读:100 作者:Leah 栏目:编程语言
C++开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

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

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

#include < iostream>   using namespace std;   template < class T>   struct node   {   //public:   // 结构体成员默认就是public的  T data;   node< T> *next;   };   //typedef struct node NODE;   //typedef NODE *NODEPTR;   //typedef后面要跟具体的类类型,而不是一个类模版。eg: typedef node< T> NODE (C++中,实例化结构体时struct可省略)  template < class T>   class list   {   public:  //以下三个函数要供外部调用,所以要声明为public,class默认为private。  /*  void creat(T &p);   void print(T p);   void destroy(T &p);   */  //这三个函数的参数有问题,按照下文的实现,我认为应改为如下:  void creat(T *p);  void print(T *p);  void destroy(T *p);  };   template< class A>   //void creat(A &p)   void list< A>::creat(A *p)  {   //class node *q;   //形参里的A就是这个程序的node类型  char ch = 0; //下数第4行cin>>ch 中的ch未定义,在此补充  A *q = NULL;  q=p; //必须新增这一句,q用于以后的动态分配  cout< < "input"< < endl;   cin>>ch;  // if(!p) //这个if放在while里会影响效率,故移到while外边,改过程序之后,实际上用不着了  // {   //p=new struct node;   //语法错误,形参里的A就是这个程序的node类型  // p = new A();  if(ch!='#')  p->data=ch;   // }   cin>>ch;  while(ch!='#')   {   //q->next=new class node;   //语法错误,形参里的A就是这个程序的node类型  q->next = new A();  //q->next=ch;   //这句应该是给data赋值  q->next->data = ch;  qq = q->next; //必须新增这一句,q用于以后的动态分配  cin>>ch;   }   q->next=NULL;   }   template < class T>   void list< T>::print(T *p)   {   if(p)   {   cout< < p->data< < " ";   print(p->next);   }   }  template < class T>   void list< T>::destroy(T *p)   {   if(p)   {   destroy(p->next);   delete p->next;   }   }   int main()   {   // NODEPTR p;   node< int> p;  // list L; 模版要有参数  list<  node< int> > L;  L.creat(&p);   cout < <  endl < <  endl < <  "show:" < < endl;  L.print(&p);   L.destroy(&p);  return 0;   } 

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

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++
AI

开发者交流群×