博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
双向链表通用类
阅读量:5749 次
发布时间:2019-06-18

本文共 3555 字,大约阅读时间需要 11 分钟。

#
# < . >
#
# < . >
# < . >
# < . >
# < . >
# < . >
# < / . >
int
( * )
{
  ;
 
int ;
 
if ( == )
   
return ;
  = (
sizeof (* ), 1);
 
if ( == )
   
return ;
  = (&( -> ), 0,  );
 
if ( != 0)
    {
      ( );
     
return ;
    }
  -> . = &( -> );
  -> . = &( -> );
  * = ;
 
return 0;
}
void
( * )
{
 
if ( && * )
    {
      = * ;
     
struct * ;
     
struct * ;
      ( -> );
     
for ( = -> . ; != &( -> );)
{
  = ;
  = -> ;
 
if ( -> )
    -> ( -> );
  ( );
}
      ( -> );
      (&( -> ), );
      ( );
      * = ;
    }
}
int
( ,
void * )
{
 
struct * ;
 
struct * ;
 
if ( == )
   
return ;
  = -> . ;
  = (
sizeof (* ), 1);
 
if ( == )
   
return ;
  -> = ;
  ( -> );
  -> = &( -> );
  -> = -> . ;
  -> = ;
  -> . = ;
  -> ++;
  ( -> );
 
return 0;
}
int
( ,
void * )
{
 
struct * ;
 
struct * ;
 
if ( == )
   
return ;
  = -> . ;
  = (
sizeof (* ), 1);
 
if ( == )
   
return ;
  -> = ;
  ( -> );
  -> = &( -> );
  -> = -> . ;
  -> = ;
  -> . = ;
  -> ++;
  ( -> );
 
return 0;
}
int
( )
{
  = 0;
  ( , & );
 
return ( == 0);
}
int
( , * )
{
 
if ( == )
   
return ;
 
if ( == )
   
return ;
  * = -> ;
 
return 0;
}
( , )
{
  ;
 
if ( == )
   
return ;
  = -> ;
  -> = ;
 
return ;
}
static
int
(
const
void * ,
const
void * )
{
 
return != ;
}
int
( ,
void * ,
void ** )
{
 
struct * , * ;
  ;
 
int = ;
 
if ( == )
   
return ;
  = -> ? -> : ;
  ( -> );
 
for ( = &( -> ), = -> . ;
       != &( -> ); = , = -> )
    {
     
if ( ( -> , ) == 0)
{
 
if ( )
    * = -> ;
  = 0;
 
break;
}
    }
  ( -> );
 
return ;
}
static
int
( ,
struct * ,
void * ,
    
int )
{
 
struct * = (
sizeof (* ), 1);
 
if ( == )
   
return ;
  -> = ;
 
if ( )
    {
      -> = -> ;
      -> = ;
     
if ( -> != & -> )
-> -> = ;
     
else
-> . = ;
      -> = ;
    }
 
else
    {
      -> = -> ;
      -> = ;
     
     
if ( -> != & -> )
-> -> = ;
     
else
-> . = ;
      -> = ;
    }
 
  -> ++;
 
return 0;
}
int
( ,
void * ,
void * ,
int )
{
 
struct * ;
  ;
 
int = ;
 
if ( == )
   
return ;
  = -> ? -> : ;
  ( -> );
 
for ( = -> . ;
       != &( -> );
       = -> )
    {
     
if ( ( -> , ) == 0)
{
  = ( , , , );
 
break;
}
    }
  ( -> );
 
return ;
}
int
( ,
void * )
{
 
struct * , * ;
  ;
 
int = ;
 
if ( == )
   
return ;
  = -> ? -> : ;
  ( -> );
 
for ( = &( -> ), = -> . ;
       != &( -> ); = , = -> )
    {
     
if ( ( -> , ) == 0)
{
  ( -> , );
  -> = -> ;
  -> -> = ;
  ( );
  -> --;
  = 0;
 
break;
}
    }
  ( -> );
 
return ;
}
int
( ,
void * ,
void * )
{
 
struct * , * ;
  ;
 
int = ;
 
if ( == )
   
return ;
  = -> ? -> : ;
  ( -> );
 
for ( = &( -> ), = -> . ;
       != &( -> ); = , = -> )
    {
     
if ( ( -> , ) == 0)
{
  -> = ;
  = 0;
 
break;
}
    }
  ( -> );
 
return ;
}
int
( , ,
void ** )
{
 
struct * ;
  ;
 
int = ;
 
if ( == )
   
return ;
 
if ( == )
   
return ;
  ( -> );
 
for ( = -> . , = 0; != &( -> );
       = -> , ++)
    {
     
if ( == )
        {
          * = -> ;
  = 0;
 
break;
        }
    }
  ( -> );
 
return ;
}
int
( , * ,
void * )
{
  ;
 
int = 0;
 
if ( == || == )
   
return ;
  = ( , & );
 
if ( )
   
return ;
 
for ( ( ); ! ( ); ( ))
    {
     
void * ;
      ( , & );
     
if (( = ( , )))
break;
    }
  (& );
 
return ;
}
int
( ,
void (* )(
void * ))
{
 
if ( == )
   
return ;
  -> = ;
 
return 0;
}
int
( ,
void ** , , * )
{
  = 0;
 
if (! )
   
return ;
  = ( < -> ) ? : -> ;
 
if ( )
    {
      ;
     
struct * ;
     
for ( = 0, = -> . ;
   < && != &( -> ); = -> )
[ ++] = -> ;
    }
 
if ( )
    * = ;
 
return 0;
}
/* Iterator interface */
struct
{
  ;
 
struct * ;
};
static
int
(
void * )
{
 
struct * = ;
  -> = -> -> . ;
 
return 0;
}
static
int
(
void * )
{
 
struct * = ;
  -> = -> -> ;
 
return 0;
}
static
int
(
void * ,
void ** ,
const
void ** )
{
 
struct * = ;
  * = -> -> ;
 
if ( )
    * = ;
 
return 0;
}
static
int
(
void * )
{
 
struct * = ;
 
return -> == & -> -> ;
}
static
int
( ,
void * )
{
 
struct * = ;
  (& -> -> , );
  ( );
 
return 0;
}
static
int
(
void * ,
void * )
{
 
struct * = ;
 
return -> == ;
}
static
int
(
void ** ,
void * )
{
  * = (
sizeof (
struct ));
 
if (* == )
   
return ;
  (* , ,
sizeof (
struct ));
 
return 0;
}
int
( , * )
{
  ;
 
int ;
 
struct * ;
 
if (! )
   
return ;
  = (1,
sizeof * );
 
if (! )
   
return ;
  -> = ;
  -> = ;
  = (& , );
 
if ( )
    {
      ( );
     
return ;
    }
  ( , );
  ( , );
  ( , );
  ( , );
  ( , );
  ( , );
  ( , );
  (& -> , );
  * = ;
 
return 0;
}

转载地址:http://yrhzx.baihongyu.com/

你可能感兴趣的文章
F#初学笔记06
查看>>
实战:将企业域名解析委派给企业DNS服务器
查看>>
在Lync 2013环境部署Office Web Apps
查看>>
微软大会Ignite,你准备好了么?
查看>>
读书笔记-高标管事 低调管人
查看>>
Master带给世界的思考:是“失控”还是进化
查看>>
用户和开发者不满苹果iCloud问题多多
查看>>
java.lang.UnsatisfiedLinkError:no dll in java.library.path终极解决之道
查看>>
我的工具:文本转音频文件
查看>>
【许晓笛】从零开始运行EOS系统
查看>>
【跃迁之路】【460天】程序员高效学习方法论探索系列(实验阶段217-2018.05.11)...
查看>>
C++入门读物推荐
查看>>
TiDB 源码阅读系列文章(七)基于规则的优化
查看>>
Spring之旅第八站:Spring MVC Spittr舞台的搭建、基本的控制器、请求的输入、表单验证、测试(重点)...
查看>>
数据结构与算法——常用排序算法及其Java实现
查看>>
你所不知的Webpack-多种配置方法
查看>>
React.js 集成 Kotlin Spring Boot 开发 Web 应用实例详解
查看>>
webpack+typescript+threejs+vscode开发
查看>>
python读excel写入mysql小工具
查看>>
如何学习区块链
查看>>