首页 > 编程 > C++ > 正文

C++实现的链表类实例

2020-01-26 15:05:34
字体:
来源:转载
供稿:网友

本文实例讲述了C++实现的链表类。分享给大家供大家参考。具体如下:

#include <iostream>using namespace std;class linklist{  private:     struct node     {      int data;      node *link;     }*p;  public:     linklist();     void append( int num );     void add_as_first( int num );     void addafter( int c, int num );     void del( int num );     void display();     int count();     ~linklist();};linklist::linklist(){   p=NULL;}void linklist::append(int num){  node *q,*t;  if( p == NULL )  {   p = new node;   p->data = num;   p->link = NULL;  }  else  {   q = p;   while( q->link != NULL )      q = q->link;   t = new node;   t->data = num;   t->link = NULL;   q->link = t;  }}void linklist::add_as_first(int num){  node *q;  q = new node;  q->data = num;  q->link = p;  p = q;}void linklist::addafter( int c, int num){  node *q,*t;  int i;  for(i=0,q=p;i<c;i++)  {   q = q->link;   if( q == NULL )   {     cout<<"/nThere are less than "<<c<<" elements.";     return;   }  }  t = new node;  t->data = num;  t->link = q->link;  q->link = t;}void linklist::del( int num ){  node *q,*r;  q = p;  if( q->data == num )  {   p = q->link;   delete q;   return;  }  r = q;  while( q!=NULL )  {   if( q->data == num )   {     r->link = q->link;     delete q;     return;   }   r = q;   q = q->link;  }  cout<<"/nElement "<<num<<" not Found.";}void linklist::display(){  node *q;  cout<<endl;  for( q = p ; q != NULL ; q = q->link )    cout<<endl<<q->data;}int linklist::count(){  node *q;  int c=0;  for( q=p ; q != NULL ; q = q->link )    c++;  return c;}linklist::~linklist(){  node *q;  if( p == NULL )    return;  while( p != NULL )  {   q = p->link;   delete p;   p = q;  }}int main(){  linklist ll;  cout<<"No. of elements = "<<ll.count();  ll.append(12);  ll.append(13);  ll.append(23);  ll.append(43);  ll.append(44);  ll.append(50);  ll.add_as_first(2);  ll.add_as_first(1);  ll.addafter(3,333);  ll.addafter(6,666);  ll.display();  cout<<"/nNo. of elements = "<<ll.count();  ll.del(333);  ll.del(12);  ll.del(98);  cout<<"/nNo. of elements = "<<ll.count();  return 0;}

希望本文所述对大家的C++程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表