c_cpp C ++中的链表实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp C ++中的链表实现相关的知识,希望对你有一定的参考价值。
// Linked List CPP
#include<iostream>
using namespace std;
class Node
{
public:
int data;
Node *next;
};
class List
{
Node *head;
Node *tail;
Node *temp;
bool isEmpty()
{
return head == NULL;
}
public:
List()
{
head = NULL;
tail = NULL;
}
void insert(int x)
{
temp = new Node;
temp->data = x;
if(isEmpty())
{
temp->next = NULL;
tail = temp;
}
else
temp->next = head;
head = temp;
}
void insertAtEnd(int x)
{
temp = new Node;
temp->data = x;
temp->next = NULL;
if(isEmpty())
{
head = temp;
tail = temp;
}
else
{
tail->next = temp;
tail = temp;
}
}
void remove(int x)
{
temp = head;
Node *prev;
while(temp->next != NULL && temp->data != x)
{
prev = temp;
temp = temp->next;
}
if(temp->data == x)
{
prev->next = temp->next;
delete temp;
}
else if(temp->next == NULL)
{
cout << "Error: Number Not found..." << endl;
}
}
void find(int x)
{
int i;
for(i=1, temp = head;temp->next != NULL && temp->data != x;temp = temp->next, i++);
if(temp->data == x)
{
cout << "Found at position:" << i << endl;
}
else if(temp->next == NULL)
{
cout << "Error: Number Not found..." << endl;
}
}
void display()
{
if(!isEmpty())
{
for(temp = head; temp != NULL; temp=temp->next)
cout << temp->data << " ";
cout << endl;
}
else
{
cout << "List is Empty!" << endl;
}
}
};
int main()
{
List l;
l.display();
l.insert(15);
l.display();
l.insert(25);
l.display();
l.insert(35);
l.display();
l.insert(45);
l.display();
l.find(15);
l.remove(25);
l.display();
l.insertAtEnd(55);
l.insertAtEnd(65);
l.display();
}
以上是关于c_cpp C ++中的链表实现的主要内容,如果未能解决你的问题,请参考以下文章
数据结构--单链表的实现(c语言实现)
数据结构--单链表的实现(c语言实现)
在VS2019中编写C语言的链表程序出现了C4473等错误,怎么修改?
C语言单链表增删改查的实现
C语言单链表增删改查的实现
Redis 中的链表结构