完成单链表的建立(尾插法)、取值、查找、插入、删除、释放。
完成单链表的建立(尾插法)、取值、查找、插入、删除、释放。单链表采用头结点,每个操作单独封装为一个函数,然后在主函数中调用这些函数。一定要正确哦...
完成单链表的建立(尾插法)、取值、查找、插入、删除、释放。单链表采用头结点,每个操作单独封装为一个函数,然后在主函数中调用这些函数。一定要正确哦
展开
2个回答
展开全部
#include <iostream>
using namespace std;
class List
{
private:
class Node
{
public:
int m_data;
Node* next;
Node(int data):m_data(data),next(NULL){}
};
Node* m_head;
public:
List():m_head(NULL){}
~List()
{
clear();
}
void clear()//释放
{
Node* p = m_head;
for(;p!=NULL;)
{
p = p->next;
delete m_head;
m_head = p;
}
m_head = NULL;
}
void insert(int data)//插入(尾插法)
{
Node* q = new Node(data);
if(m_head == NULL)
{
m_head = q;
return;
}
Node* p = m_head;
for(;p->next != NULL;p = p->next);
p->next = q;
}
int getdata(int n)//取值
{
Node* p = m_head;
while(--n)
{
if(p == NULL)
return -1;//表示超出链表中的节点个数
p = p->next;
}
return p->m_data;
}
int find (int data)
{
Node* p = m_head;
int n = 1;
while(p!=NULL)
{
if(p->m_data == data)
return n;
n++;
p = p->next;
}
return 0;//表示没有该数据
}
};
int main()
{
List ls;
ls.insert(3);
ls.insert(6);
int i = ls.getdata(2);//取第二个插入的值
cout << i << endl;
i = ls.find(3);//第几个插入值为3
cout << i << endl;
return 0;
}
using namespace std;
class List
{
private:
class Node
{
public:
int m_data;
Node* next;
Node(int data):m_data(data),next(NULL){}
};
Node* m_head;
public:
List():m_head(NULL){}
~List()
{
clear();
}
void clear()//释放
{
Node* p = m_head;
for(;p!=NULL;)
{
p = p->next;
delete m_head;
m_head = p;
}
m_head = NULL;
}
void insert(int data)//插入(尾插法)
{
Node* q = new Node(data);
if(m_head == NULL)
{
m_head = q;
return;
}
Node* p = m_head;
for(;p->next != NULL;p = p->next);
p->next = q;
}
int getdata(int n)//取值
{
Node* p = m_head;
while(--n)
{
if(p == NULL)
return -1;//表示超出链表中的节点个数
p = p->next;
}
return p->m_data;
}
int find (int data)
{
Node* p = m_head;
int n = 1;
while(p!=NULL)
{
if(p->m_data == data)
return n;
n++;
p = p->next;
}
return 0;//表示没有该数据
}
};
int main()
{
List ls;
ls.insert(3);
ls.insert(6);
int i = ls.getdata(2);//取第二个插入的值
cout << i << endl;
i = ls.find(3);//第几个插入值为3
cout << i << endl;
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询