1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <ctype.h>
  5. #include <stdarg.h>
  6. #include <time.h>
  7.  
  8. struct mytime
  9. {
  10. //char name[256];
  11. int hour;//时
  12. int min; //分
  13. int sec; //秒
  14. };
  15.  
  16. struct stu_data
  17. {
  18. char name[];//学生名字
  19. int sex;//0女生,非0表男生
  20. struct mytime stuTime;//签到时间
  21. struct stu_data* front; //指向前一个结点
  22. struct stu_data* back; //指向后一个结点
  23.  
  24. } ;
  25.  
  26. //搜索 查询
  27.  
  28. struct stu_data * FindNode(struct stu_data* Head,char* Name)
  29. {
  30. struct stu_data * stu;
  31. stu=Head->back;
  32. do
  33. {
  34. if (strcmpi(stu->name,Name)==)//不区分大小写 判断相等
  35. {
  36. printf("%s,到校时间:%d时%d分%d秒\n",stu->name, stu->stuTime.hour, stu->stuTime.min, stu->stuTime.sec);
  37. if (stu->sex)
  38. {
  39. printf(" 男");
  40. }else printf(" 女");
  41. return stu;
  42. }
  43. stu=stu->back;
  44. } while (stu!=Head->back);
  45.  
  46. return NULL;
  47. }
  48.  
  49. int main(int argn,char* argv[])// int a[1]//a[0]
  50. {
  51.  
  52. struct mytime t2;
  53. struct stu_data *stu,*p,*Head,*tail;
  54.  
  55. time_t t;// long int
  56. struct tm * timfo;
  57. int i;
  58.  
  59. //建立Head头结点
  60. Head=p=tail=malloc(sizeof( struct stu_data)); //256+12=268
  61. memset(p,,sizeof( struct stu_data));
  62. strcpy(Head->name,"头结点");
  63.  
  64. do
  65. {//插入新的结点
  66. stu= malloc(sizeof( struct stu_data)); //
  67. memset(stu,,sizeof( struct stu_data)); //初始化内存区域
  68.  
  69. //stu->back=NULL; //新结点尾指针置空
  70. //p->back=stu; //前驱结点back指针指向新结点
  71. //p=stu; //重要移动标志指针
  72.  
  73. stu->front=p; //新结点指向前驱 2
  74. stu->back=NULL; //新结点尾指针置空
  75. p->back=stu; //前驱结点back指针指向新结点
  76. p=stu; //重要移动标志指针
  77. tail=stu;//可有可无的 2
  78.  
  79. scanf("%s",&stu->name);
  80. time(&t);
  81. timfo= localtime(&t); //取当前系统时间
  82. stu->stuTime.hour=timfo->tm_hour;//时
  83. stu->stuTime.min=timfo->tm_min;//分
  84. stu->stuTime.sec=timfo->tm_sec;//秒
  85. //构建循环链表
  86. Head->front=stu;
  87. tail->back=Head;
  88.  
  89. } while(strcmpi(stu->name,"exit")!=);
  90.  
  91. //初始指针p 使他头结点Head
  92. //stu=Head->back;
  93. //do
  94. //{
  95. // printf("%s,到校时间:%d时%d分%d秒\n",stu->name, stu->stuTime.hour, stu->stuTime.min, stu->stuTime.sec);
  96.  
  97. // stu=stu->back;
  98. //} while (strcmpi(stu->name,"exit"));
  99.  
  100. printf("\n\n 找到的结点地址:%x", FindNode(Head,"s2"));
  101.  
  102. getchar();
  103. getchar();
  104.  
  105. return ;
  106. }

删除

c++ 双向链表 的查找和删除的更多相关文章

  1. SQL重复记录处理(查找,过滤,删除)

    SQL重复记录处理(查找,过滤,删除)     ID int    Title nvarchar(50)    AddDate datetime    数据  www.2cto.com     ID ...

  2. 有关文件夹与文件的查找,删除等功能 在 os 模块中实现

    最近在写的程序频繁地与文件操作打交道,这块比较弱,还好在百度上找到一篇不错的文章,这是原文传送门,我对原文稍做了些改动. 有关文件夹与文件的查找,删除等功能 在 os 模块中实现.使用时需先导入这个模 ...

  3. STL中vector的赋值,遍历,查找,删除,自定义排序——sort,push_back,find,erase

    今天学习网络编程,那个程序中利用了STL中的sort,push_back,erase,自己没有接触过,今天学习一下,写了一个简单的学习程序.编译环境是VC6.0         这个程序使用了vect ...

  4. 数据结构与算法->树->2-3-4树的查找,添加,删除(Java)

    代码: 兵马未动,粮草先行 作者: 传说中的汽水枪 如有错误,请留言指正,欢迎一起探讨. 转载请注明出处. 目录 一. 2-3-4树的定义 二. 2-3-4树数据结构定义 三. 2-3-4树的可以得到 ...

  5. 【数据结构】——搜索二叉树的插入,查找和删除(递归&非递归)

    一.搜索二叉树的插入,查找,删除 简单说说搜索二叉树概念: 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右 ...

  6. oracle中查找和删除重复记录的几种方法总结

    平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录. 下面总结一下几种查找和删除重复记录的方法(以表CZ为例): 表CZ的结 ...

  7. Linux系统中查找、删除重复文件,释放磁盘空间。

    在Linux系操作系统中查找并删除重复文件的方法的确有很多,不过这里介绍的是一款非常简单实用的软件FSlint.FSlint是一个重复文件查找工具,可以使用它来清除不必要的重复文件,笔者经常使用它来释 ...

  8. linux中find与rm实现查找并删除文件

    find命令: find . -name '*.log' #查找当前目录下的log文件 查找并删除: find . -name '*.log' -type f -print -exec rm -rf ...

  9. Dom4j 操作, 节点查找 添加 删除 修改 。。。xPath

    转: Dom4j 操作, 节点查找 添加 删除 修改 ...xPath 2013年11月28日 10:48:59 今晚打酱油8 阅读数:8506更多 个人分类: JavaWeb   版权声明:本文为博 ...

随机推荐

  1. 提示"Zend Optimizer not installed"卸载安装也不行,什么原因如何解决?

    如题:Zend Optimizer not installed可能原因及解决方法 Optimizer, Zend 在配置php服务器的时候,所有的东西都安装好了,就是浏览一个要求zend的程序的时候, ...

  2. docker的网络基础配置

    一.端口映射实现访问容器 当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-P或-p参数来指定端口映射.当使用-P标记时,Docker会随机映射一个49000~49900的端口至容器内部开放 ...

  3. 【Redis】命令学习笔记——哈希(hash)(15个超全字典版)

    本篇基于redis 4.0.11版本,学习哈希(hash)相关命令. hash 是一个string类型的field和value的映射表,特别适合用于存储对象. 序号 命令 描述 实例 返回 HSET ...

  4. windows多线程同步

    概述 任何单个应用程序都不能完全使该处理器达到满负荷.当一个线程遇到较长等待时间事件时,同步多线程还允许另一线程中的指令使用所有执行单元.例如,当一个线程发生高速缓存不命中,另一个线程可以继续执行.同 ...

  5. 转:.net设计模式之单例模式

    原文地址:http://terrylee.cnblogs.com/archive/2005/12/09/293509.html 概述 Singleton模式要求一个类有且仅有一个实例,并且提供了一个全 ...

  6. Virtual PC局域网共享速度慢的解决半法。转

    HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DisableTaskOffload 新建字符串,名:DisableTaskOffloa ...

  7. [2018HN省队集训D6T2] girls

    [2018HN省队集训D6T2] girls 题意 给定一张 \(n\) 个点 \(m\) 条边的无向图, 求选三个不同结点并使它们两两不邻接的所有方案的权值和 \(\bmod 2^{64}\) 的值 ...

  8. 【原创】uWSGI http和http-socket说明

    http 和 http-socket的使用上有一些区别: http: 自己会产生一个http进程(可以认为与nginx同一层)负责路由http请求给worker, http进程和worker之间使用的 ...

  9. MyEclipse10.6 myeclipse2013下添加jadClipse反编译插件 .

    jad是一个使用比较广泛的Java反编译软件,jadClipse是jad在eclipse下的插件,下面像大家介绍下如何将jadclipse加入到MyEclipse10.X,9.X,8.X,6.X等各版 ...

  10. 安装配置maven私服-nexus

    1.ubuntu下的Bundle安装方式 1.1. 去官网下载安装包:http://www.sonatype.org/nexus/ 我这里下载的是:nexus-2.8.1-01-bundle.zip, ...