#ifndef THREELETTERNODE_H
#define THREELETTERNODE_H
class ThreeLetterList
{
private:
//嵌套类,
class ThreeLetterNode
{
public:
char data[4]; // 一个数据域,
ThreeLetterNode *link; // 链接域,
};
ThreeLetterNode *first;
public:
void test();
void show();
};
void ThreeLetterList::test()
{
ThreeLetterNode *f = new ThreeLetterNode();
f->data[0] = 'x';
f->data[1] = 'i';
f->data[2] = 'a';
f->data[3] = 'o';
f->link = 0;
first = f;
f = new ThreeLetterNode();
f->data[0] = 'a';
f->data[1] = 'i';
f->data[2] = 'a';
f->data[3] = 'o';
f->link = 0;
first->link = f;
}
void ThreeLetterList::show()
{
std::cout << first->data[0] << first->data[1] << first->data[2] << first->data[3] << " -> ";
std::cout << first->link->data[0]
<< first->link->data[1]
<< first->link->data[2]
<< first->link->data[3] << std::endl;
}
#endif THREELETTERNODE_H
#include <iostream>
#include "ThreeLetterNode.h"
using namespace std;
class NodeB;
class NodeA
{
private:
int data1; // 三个数据域
char data2;
float data3;
NodeA *linka;
NodeB *linkb;
};
class NodeB
{
private:
int data;
NodeB *link;
};
class List;
class Node // 节点,
{
friend class List; // 友元类,
private:
int data; // 节点里的数据,
Node* link; // 指向下一个节点的指针
};
class List // 链表,
{
public:
void test();
void show();
private:
Node* first; // 指向第一个节点的指针,
};
void List::show()
{
cout << first->data << " -> "
<< first->link->data << " -> "
<< first->link->link->data << endl;
}
void List::test()
{
Node *f=new Node();
f->data = 44;
f->link = 0;
first = f;
f = new Node();
f->data = 70;
f->link = 0;
first->link = f;
f = new Node();
f->data = 200;
f->link = 0;
first->link->link = f;
}
int main()
{
List s;
s.test();
s.show();
ThreeLetterList t;
t.test();
t.show();
return 0;
}
// 数组在插入或者删除数据的排序时候,需要把其它的数据向前或者向后移动。
//然而链表直接把数据插入到相应的位置或者直接的删除掉,对应的其它的数据不用移动,