以前写的 最近找出来 加上了逆置的功能

#include<iostream>
#include<string>
#define N 10
using namespace std;
struct ptnode
{
char name[20];
ptnode *llink,*rlink;
};
ptnode *create(int n);
ptnode *search(ptnode *head,char *p);
void insert(ptnode *head,char *p,char *inp);
void print(ptnode *head);
void Delete(ptnode *ptr);
void Contray_Dul(ptnode *head);//逆置
int main()
{
int n;
char stuname[20];
char insertname[20];
ptnode *head,*searchpoint;
cout<<"输入链表长度:";
cin>>n;
head=create(n);
print(head);
cout<<"输入你要查找的名字:";
cin>>stuname;
searchpoint=search(head,stuname);
cout<<"你想要查找的名字是:"<<searchpoint->name<<endl;
Delete(searchpoint);
print(head);
cout<<"你想在哪个名字前插入:";
cin>>stuname;
cout<<"输入你想插入的名字:";
cin>>insertname;
insert(head,stuname,insertname);
print(head);
cout<<"_____逆置表_____"<<endl;
Contray_Dul(head);
print(head);
cout<<endl;
return 0;
}
ptnode *create(int n)
{
ptnode *head,*ptr,*newnode;
int i;
if((head=new ptnode)==NULL)
{
cout<<"无空间申请"<<endl;
return NULL;
}
head->name[0]='\0';
head->llink=NULL;
head->rlink=NULL;
ptr=head;
for(i=0;i<n;i++)
{
newnode=new ptnode;
ptr->rlink=newnode;//连接新节点
cout<<"输入第"<<i+1<<"个人的名字:";
cin>>newnode->name;
newnode->llink=ptr;//定义新节点的连接关系
newnode->rlink=NULL;
ptr=newnode;
}
head->llink=newnode;
newnode->rlink=head;
return head;
}
ptnode *search(ptnode *head,char *p)
{
ptnode *ptr;
ptr=head->rlink;
while(ptr!=head)//以是否回到头结点为结束条件
{
if(strcmp(ptr->name,p)==0)
return ptr;
else
ptr=ptr->rlink;
}
cout<<"你要找的名字不存在"<<endl;
return NULL;
}
void insert(ptnode *head,char *p,char *inp)
{
ptnode *ptr,*newnode;
ptr=search(head,p);
if(ptr==NULL)
{
cout<<"找不到指定插入点"<<endl;
return ;
}
newnode=new ptnode;
strcpy(newnode->name,inp);
newnode->llink=ptr->llink;
newnode->rlink=ptr;
(ptr->llink)->rlink=newnode;
ptr->llink=newnode;
}
void print(ptnode *head)
{
ptnode *p;
p=head->rlink;
cout<<"现在的数据为:";
while(p!=head)
{
cout<<p->name<<"  ";
p=p->rlink;
}
cout<<endl;
}
void Delete(ptnode *ptr)
{
ptr->rlink->llink=ptr->llink;
ptr->llink->rlink=ptr->rlink;
delete ptr;
}
void Contray_Dul(ptnode *head)
{
ptnode *p=head->rlink,*q;
while(p!=head)
{
q=p->rlink;
p->rlink=p->llink;
p->llink=q;
p=q;
}
q=head->rlink;
head->rlink=head->llink;
head->llink=q;
}

双向链表的一个简单的例子相关推荐

  1. .net中的对象序列化(1): 序列化是什么, 以及一个简单的例子

    1. 为什么需要序列化,什么是序列化 对于一个程序来说, 使用到的对象都是存在于内存中的.如果想保存这些对象的运行时状态, 或者需要在不同进程或者网络间传递对象,就需要序列化. 序列化就是讲运行中的对 ...

  2. 一个简单的例子看java线程机制

    一个简单的例子看java线程机制 作者: zyf0808 发表日期: 2006-03-26 11:20 文章属性: 原创 复制链接 import java.util.*; public class T ...

  3. blockchain 区块链200行代码:在JavaScript实现的一个简单的例子

    blockchain 区块链200行代码:在JavaScript实现的一个简单的例子 了解blockchain的概念很简单(区块链,交易链块):它是分布式的(即不是放置在同一台机器上,不同的网络设备上 ...

  4. pycharm安装scrapy失败_Scrapy ——环境搭配与一个简单的例子

    在我刚接触爬虫的时候就已经听过Scrapy大名了,据说是一个很厉害的爬虫框架,不过那个时候沉迷于Java爬虫.现在终于要来揭开它神秘的面纱了,来一起学习一下吧 欢迎关注公众号:老白和他的爬虫 1.环境 ...

  5. java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换...

    一个简单的例子理解java继承.成员函数重写.类型转换 1.继承简介 举一个简单的例子:笔分为很多种,比如毛笔.钢笔.圆珠笔等等,这些笔都有一些相同的属性比如长度.笔迹的粗细等等:但他们也有不同的特点 ...

  6. 类模板与运算符重载(一个简单的例子)

    类模板与运算符重载(一个简单的例子) 标签(空格分隔): C++ 算法竞赛 下面是一段简单的代码,表示我们建立了一个类模板Vector,可以看做是对STL中vector的简单实现. 为了让这个Vect ...

  7. 一个简单的例子,学习自定义注解和AOP

    转载自   一个简单的例子,学习自定义注解和AOP 记得今年年初刚开始面试的时候,被问的最多的就是你知道Spring的两大核心嘛?那你说说什么是AOP,什么是IOC?我相信你可能也被问了很多次了. 1 ...

  8. antlr4例子_ANTLR和网络:一个简单的例子

    antlr4例子 网络上的ANTLR:为什么? 我开始在MS-DOS上编写我的第一个程序. 因此,我非常习惯在自己的机器上安装工具. 但是在2016年,网络无处不在,因此那里也可能需要我们的语言. 可 ...

  9. ANTLR和网络:一个简单的例子

    网络上的ANTLR:为什么? 我开始在MS-DOS上编写我的第一个程序. 因此,我非常习惯在计算机上安装工具. 但是在2016年,网络无处不在,因此那里也可能需要我们的语言. 可能的情况: ANTLR ...

最新文章

  1. 怎么将vue模板转换为html,vue中自定义html文件的模板
  2. phpStorm 2016.1 最新版激活方法
  3. 【安全】免密登陆SQLSERVER 之 Token 窃取
  4. 可口的JAVA-并发控制之CountDownLatch
  5. android去掉顶部标题栏
  6. mysql 可以承受多少人_多少人曾羡慕“双 11”时的爆单 可知谁在承受库存积压的风险...
  7. mysql的简单实用_MySQL的简单实用 手把手教学
  8. 拓端tecdat|用R语言软件估计光谱密度
  9. IIS7 请求筛选模块被配置为拒绝超过请求内容长度的请求
  10. drools-基本使用
  11. 谷歌学术文献信息爬取及文献下载
  12. java蓝桥杯数字黑洞_蓝桥杯题目练习之数字黑洞
  13. Java课程设计税率_梁勇(Danniel Liang) java教材例题:java程序购买额按税率求营业税 java中数值保留2位小数的方法...
  14. 《微型计算机原理与接口技术》期末总复习 —— 一篇匆匆忙忙的复习笔记
  15. 小米再次回购股票:斥资近1亿港元 传递市场信心
  16. windows10如何开机自动运行bat文件
  17. C/C++内存申请和释放(一)
  18. R语言绘制频率直方图
  19. C语言关键字浅析-while
  20. 运行窗口常用命令【自启动】【DOS窗口】【配置窗口】

热门文章

  1. redis安装,redis安装windows服务
  2. 将自己的 ubuntu 系统制作为ISO镜像
  3. Axure如何实现全选、全不选功能
  4. 电信运营商的三大数据域——B域,O域,M域
  5. 自考计算机专业实践报不了名,2014年9月北京自考计算机及应用专业实践课程网报通知...
  6. 计算机工作功率,电脑功率(电脑一天要用多少电)
  7. 笔记本计算机的功率一般多少钱,笔记本电脑功率是多少?笔记本功率简单的查看方法...
  8. php本地浏览器调试,php浏览器端调试输出方法
  9. Android SDK的下载安装
  10. 「深圳二手房」成交激增会不会是楼市转机的标志?