软件编程
位置:首页>> 软件编程>> C语言>> C++实现的链表类实例

C++实现的链表类实例

作者:小卒过河  发布时间:2023-07-04 08:36:36 

标签:C++,链表

本文实例讲述了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++程序设计有所帮助。

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com