这是一个C的程序,怎么改成C++的呢?请高手帮忙!

来源:百度知道 编辑:UC知道 时间:2024/04/30 09:30:18
#include<stdio.h>
#include<malloc.h>
#define ERROR 0;
typedef struct
{
char data;
struct Lnode *next;
}Lnode;

Lnode *MakeLnode(char c)
{
Lnode *L;
Lnode *p;
L = (Lnode *)malloc(sizeof(Lnode));
p = (Lnode *)malloc(sizeof(Lnode));
p->data = c;
p->next = NULL;
L->next=p;
return L;
}

void AddLnode(Lnode *L,char c)
{
while (L->next != NULL)
L = L->next;

L->next = (Lnode *)malloc(sizeof(Lnode));
L = L->next;
L->data = c;
L->next = NULL;
}

void Print(Lnode *L)
{
Lnode *p;
p=L->next;
while (p!= NULL)
{
printf("%c",p->data);
p = p->next;
}
}
void ListDelete(Lnode *L,int i)
{
Lnode *p=L;
Lnode *q;
int j=0;

已经改完,完全是C++的了,包括原理,我把原理来说一下,程序
先实现一个节点类(Node),这个类包含了原来程序的 data(改名为m_data)和下一节点的指针(m_next),还包括了节点数据的输出和设定
再实现一个节点链的类(NodeList),包含节点链的头指针和节点的遍历输出、节点插入、节点删除等操作。

#include <iostream.h>
#define ERROR 0
//#define NULL 0

class Node
{
private:
char m_data;
Node *m_next;
public:
// Node *MakeNode(char c);

Node();
Node(char Ln);
void PrintChar();
Node *ReturnNext();
void SetChar(char c);
Node *SetNext(Node * p);
};

Node::Node()
{
m_data = NULL;
m_next = NULL;
}

Node::Node(char c)
{
m_data = c;
m_next = NULL;
}

void Node::PrintChar()
{
cout << m_data;
}

Node* Node::ReturnNext()
{
return m_next;
}

void Node::SetChar(char c)
{
m_data = c;
}

Node* Node::SetNext(Nod