#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例
共201个文件
cpp:201个
需积分: 0 36 下载量 38 浏览量
2008-03-20
07:29:22
上传
评论
收藏 102KB RAR 举报
温馨提示
C++经典编程200例
资源详情
资源评论
资源推荐
收起资源包目录
C++经典编程200例 (201个子文件)
p2-135.cpp 3KB
p4-186.cpp 3KB
p4-191.cpp 3KB
p4-188.cpp 3KB
p4-192.cpp 3KB
p4-196.cpp 2KB
p4-183.cpp 2KB
p4-182.cpp 2KB
p4-195.cpp 2KB
p4-199.cpp 2KB
p4-181.cpp 2KB
p4-180.cpp 2KB
p4-187.cpp 2KB
p1-94.cpp 2KB
p4-176.cpp 2KB
p4-185.cpp 2KB
p4-198.cpp 2KB
p4-193.cpp 2KB
p1-60.cpp 2KB
p4-184.cpp 2KB
p4-197.cpp 2KB
p1-93.cpp 2KB
p1-92.cpp 2KB
p4-194.cpp 2KB
p3-163.cpp 2KB
p2-131.cpp 1KB
p1-69.cpp 1KB
p2-132.cpp 1KB
p2-107.cpp 1KB
p2-102.cpp 1KB
p2-101.cpp 1KB
p2-108.cpp 1KB
p2-118.cpp 1KB
p4-173.cpp 1KB
p4-172.cpp 1KB
p1-59.cpp 1KB
p1-20.cpp 1KB
p1-64.cpp 1KB
p2-116.cpp 1KB
p1-90.cpp 1KB
p4-178.cpp 1KB
p1-51.cpp 1KB
p2-129.cpp 1KB
p1-41.cpp 1KB
p1-8.cpp 1KB
p1-78.cpp 1KB
p2-103.cpp 1KB
p2-127.cpp 1KB
p2-120.cpp 1KB
p4-179.cpp 1KB
p1-88.cpp 1KB
p4-190.cpp 1KB
p4-200.cpp 1KB
p2-133.cpp 1KB
p2-105.cpp 1KB
p1-56.cpp 1KB
p4-170.cpp 1KB
p4-175.cpp 1KB
p1-91.cpp 1KB
p2-121.cpp 1KB
p2-119.cpp 1KB
p2-130.cpp 1KB
p1-1.cpp 1KB
p3-139.cpp 1KB
p1-1.cpp 1KB
p1-54.cpp 1KB
p1-80.cpp 1KB
p2-137.cpp 1KB
p1-79.cpp 1KB
p1-52.cpp 1KB
p1-57.cpp 1KB
p1-89.cpp 1014B
p1-81.cpp 994B
p1-82.cpp 978B
p1-53.cpp 969B
p3-151.cpp 962B
p3-155.cpp 962B
p1-7.cpp 958B
p2-123.cpp 956B
p1-70.cpp 955B
p1-87.cpp 946B
p1-86.cpp 945B
p4-189.cpp 924B
p2-117.cpp 906B
p2-110.cpp 903B
p4-174.cpp 875B
p1-19.cpp 873B
p1-62.cpp 871B
p3-156.cpp 852B
p1-49.cpp 841B
p2-128.cpp 837B
p2-113.cpp 826B
p2-125.cpp 812B
p3-159.cpp 799B
p4-177.cpp 771B
p1-4.cpp 763B
p1-43.cpp 760B
p1-65.cpp 760B
p2-122.cpp 755B
p1-74.cpp 749B
共 201 条
- 1
- 2
- 3
talentme
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0