#include<iostream.h>
//定义节点(数据对象)的接口
class Node
{
//声明list类为本类的友元类
friend class list;
//私有成员
private:
int Data; //节点数据
Node *previous; //前趋指针
Node *next; //后继指针
};
//定义双向链表list的接口声明
class list
{
//私有成员
private:
Node *Head; //链表头指针
Node *Tail; //链表尾指针
//定义接口函数
public:
//构造函数
list();
//析构函数
~list();
//从链表尾后添加数据
void Build_HT(int Data);
//从链表前头添加数据
void Build_TH(int Data);
//从头到尾显示数据
void list::Display_HT();
//从尾到头显示数据
void list::Display_TH();
//清除链表的全部数据
void Clear();
};
//main()函数测试双向链表
int main(void)
{
list list1;
int i;
//从尾添加数据
cout<<"Add to the back of the list1:"<<endl;
for (i=1;i<=20;i=i+2) {
list1.Build_HT(i);
cout<<i<<" ";
}
cout<<endl;
//从头添加数据
cout<<"Add to the front of the list1:"<<endl;
for (i=0;i<=20;i=i+2) {
list1.Build_TH(i);
cout<<i<<" ";
}
cout<<endl;
//显示链表
list1.Display_HT();
list1.Display_TH();
return 0;
}
//list类函数的定义
//构造函数的定义
list::list()
{
//初值
Head=0;
Tail=0;
}
//析构函数的定义
list::~list()
{
Clear();
}
//从链表尾后添加数据
void list::Build_HT(int Data)
{
Node *Buffer;
Buffer=new Node;
Buffer->Data=Data;
if(Head==0)
{
Head=Buffer;
Head->next=0;
Head->previous=0;
Tail=Head;
}
else
{
Tail->next=Buffer;
Buffer->previous=Tail;
Buffer->next=0;
Tail=Buffer;
}
}
//从链表前头添加数据
void list::Build_TH(int Data)
{
Node *NewNode;
NewNode=new Node;
NewNode->Data=Data;
if(Tail==0)
{
Tail=NewNode;
Tail->next=0;
Tail->previous=0;
Head=Tail;
}
else
{
NewNode->previous=0;
NewNode->next=Head;
Head->previous=NewNode;
Head=NewNode;
}
}
//从头到尾显示数据
void list::Display_HT()
{
Node *TEMP;
TEMP=Head;
cout<<"Display the list from Head to Tail:"<<endl;
while(TEMP!=0)
{
cout<<TEMP->Data<<" ";
TEMP=TEMP->next;
}
cout<<endl;
}
//从尾到头显示数据
void list::Display_TH()
{
Node *TEMP;
TEMP=Tail;
cout<<"Display the list from Tail to Head:"<<endl;
while(TEMP!=0)
{
cout<<TEMP->Data<<" ";
TEMP=TEMP->previous;
}
cout<<endl;
}
//清除链表的全部数据
void list::Clear()
{
Node *Temp_head=Head;
if (Temp_head==0) return;
do
{
Node *TEMP_NODE=Temp_head;
Temp_head=Temp_head->next;
delete TEMP_NODE;
}
while (Temp_head!=0);
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
C++经典练习例题200例 (203个子文件)
p1-80.txt.baiduyun.downloading.cfg 0B
p1-19.txt.baiduyun.downloading.cfg 0B
p1-80.txt.baiduyun.downloading 1KB
p1-19.txt.baiduyun.downloading 873B
p2-135.txt 3KB
p4-186.txt 3KB
p4-191.txt 3KB
p4-188.txt 3KB
p4-192.txt 3KB
p4-196.txt 2KB
p4-183.txt 2KB
p4-182.txt 2KB
p4-195.txt 2KB
p4-199.txt 2KB
p4-181.txt 2KB
p4-180.txt 2KB
p4-187.txt 2KB
p1-94.txt 2KB
p4-176.txt 2KB
p4-185.txt 2KB
p4-198.txt 2KB
p4-193.txt 2KB
p1-60.txt 2KB
p4-184.txt 2KB
p4-197.txt 2KB
p1-93.txt 2KB
p1-92.txt 2KB
p4-194.txt 2KB
p3-163.txt 2KB
p2-131.txt 1KB
p1-69.txt 1KB
p2-132.txt 1KB
p2-107.txt 1KB
p2-102.txt 1KB
p2-101.txt 1KB
p2-108.txt 1KB
p2-118.txt 1KB
p4-173.txt 1KB
p4-172.txt 1KB
p1-59.txt 1KB
p1-20.txt 1KB
p1-64.txt 1KB
p2-116.txt 1KB
p1-90.txt 1KB
p4-178.txt 1KB
p1-51.txt 1KB
p2-129.txt 1KB
p1-41.txt 1KB
p1-8.txt 1KB
p1-78.txt 1KB
p2-103.txt 1KB
p2-127.txt 1KB
p2-120.txt 1KB
p4-179.txt 1KB
p1-88.txt 1KB
p4-190.txt 1KB
p4-200.txt 1KB
p2-133.txt 1KB
p2-105.txt 1KB
p1-56.txt 1KB
p4-170.txt 1KB
p4-175.txt 1KB
p1-91.txt 1KB
p2-121.txt 1KB
p2-119.txt 1KB
p2-130.txt 1KB
p1-1.txt 1KB
p1-1.txt 1KB
p3-139.txt 1KB
p1-54.txt 1KB
p2-137.txt 1KB
p1-79.txt 1KB
p1-52.txt 1KB
p1-57.txt 1KB
p1-89.txt 1014B
p1-81.txt 994B
p1-82.txt 978B
p1-53.txt 969B
p3-151.txt 962B
p3-155.txt 962B
p1-7.txt 958B
p2-123.txt 956B
p1-70.txt 955B
p1-87.txt 946B
p1-86.txt 945B
p4-189.txt 924B
p2-117.txt 906B
p2-110.txt 903B
p4-174.txt 875B
p1-62.txt 871B
p3-156.txt 852B
p1-49.txt 841B
p2-128.txt 837B
p2-113.txt 826B
p2-125.txt 812B
p3-159.txt 799B
p4-177.txt 771B
p1-4.txt 763B
p1-43.txt 760B
p1-65.txt 760B
共 203 条
- 1
- 2
- 3
资源评论
- ZhangXS_11252022-04-27没有题目,只有答案
caimanong
- 粉丝: 19
- 资源: 30
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功