C++程序修改(链表)

来源:百度知道 编辑:UC知道 时间:2024/06/04 17:59:42
作业
定义一个带表头结点的单链表类,将该类说明为是结点类的友元类。已知结点类具有一个整数类型的数据成员和指向结点的指针。
要求该链表类具有如下操作:
void print() 输出链表中的全部结点.
int length() 求链表中结点的个数.
void insert ( int x, int i )在第 i 个有效结点后插入新元素 x
void del(int i)删除第 i个有效结点
class Node
{
friend class LinkedList;
private:
int data;
Node *next;
Node(int i)
{
data=i;
next=NULL;
}
};
#include "node.h"
class LinkedList
{
private:
Node *head;
Node *tail;
public:
LinkedList();
void addNode(int value);
void print();
int length();
void insert (int x,int i);
void del(int i);
};
#include "iostream.h"
#include "linkedList.h"
LinkedList::LinkedList()
{
head=tail=NULL;
}
void LinkedList::addNode(int value)
{Node *newNode;
newNode = new Node(value);
if (head == NULL)
{
head = newNode;

全部都改了,加了提示,你之前写的连给链表添加值都没有,都给你改了

#include "iostream.h"
class Node
{
friend class LinkedList;
private:
int data;
Node *next;
Node() {};
Node(int i)
{
data=i;
next=NULL;
}
};

class LinkedList
{
private:
Node *head;
Node *tail;
public:
LinkedList();
void addNode(int value);
void print();
int length();
void insert (int x,int i);
void del(int i);
};

LinkedList::LinkedList()
{
head = new Node;
head->next = NULL;
tail=NULL;
}
void LinkedList::addNode(int value)
{
Node *r, *s;
r = head;
int dat;
while(value--)
{
cout << "请输入添加的元素的值:";
cin >> dat;
s = new Node;
s->data = dat;
r->next = s;
r = s;
}
r->next = NULL;
}