• 大小: 1.4MB
    文件类型: .zip
    金币: 2
    下载: 2 次
    发布日期: 2023-08-15
  • 语言: C/C++
  • 标签: 数据结构  C++  源码  

资源简介

数据结构(C++语言版)_第三版_邓俊辉 源码

资源截图

代码片段和文件信息

/******************************************************************************************
 * Data Structures in C++
 * ISBN: 7-302-33064-6 & 7-302-33065-3 & 7-302-29652-2 & 7-302-26883-3
 * Junhui DENG deng@tsinghua.edu.cn
 * Computer Science & Technology Tsinghua University
 * Copyright (c) 2006-2013. All rights reserved.
 ******************************************************************************************/

/******************************************************************************************
 * Test of AVL Tree
 ******************************************************************************************/
#include “AVL_test.h“

/******************************************************************************************
 * Test an AVL
 ******************************************************************************************/
template  void  testAVL ( int n ) {
   AVL avl;
   while ( avl.size() < n ) {
      T e = dice ( ( T ) n * 3 ); //[0 3n)范围内的e
      switch ( dice ( 3 ) ) {
         case 0: { //查找,成功率 <= 33.3%
            printf ( “Searching for “ ); print ( e ); printf ( “ ...\n“ );
            BinNodePosi(T) & p = avl.search ( e );
            p ?
            printf ( “Found with“ ) print ( p ) printf ( “\n“ ) :
            printf ( “Not found\n“ );
            break;
         }
         case 1: { //删除,成功率 <= 33.3%
            printf ( “Removing “ ); print ( e ); printf ( “ ...\n“ );
            avl.remove ( e ) ? printf ( “Done\n“ ) print ( avl ) : printf ( “Not exists\n“ );
            break;
         }
         default: {//插入,成功率 == 100%
            printf ( “Inserting “ ); print ( e ); printf ( “ ...\n“ );
            BinNodePosi(T) p = avl.insert ( e );
            if ( p->data != e ) { print ( p->data ); printf ( “ <> “ ); print ( e ); printf ( “\n“ ); }
            printf ( “Done with“ ) print ( p ) printf ( “\n“ ) print ( avl );
            break;
         }
      }
   }
   while ( avl.size() > 0 ) {
      T e = dice ( ( T ) n * 3 ); //[0 3n)范围内的e
      printf ( “Removing “ ); print ( e ); printf ( “ ...\n“ );
      avl.remove ( e ) ? printf ( “Done\n“ ) print ( avl ) : printf ( “Not exists\n“ );
   }
}

/******************************************************************************************
 * 测试主入口
 ******************************************************************************************/
int main ( int argc char* argv[] ) {
   if ( 2 > argc ) { printf ( “Usage: %s \a\a\n“ argv[0] ); return 1; }
   srand ( ( unsigned int ) time ( NULL ) );
   testAVL ( atoi ( argv[1] ) ); //元素类型可以在这里任意选择
   return 0;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-01-01 01:01  dsa\
     目录           0  2015-01-01 01:01  dsa\src\
     目录           0  2015-01-01 01:01  dsa\src\avl\
     文件         753  2015-01-01 01:01  dsa\src\avl\avl.h
     文件        5023  2015-01-01 01:01  dsa\src\avl\avl.vcproj
     文件        1446  2015-01-01 01:01  dsa\src\avl\AVL.vcproj.user
     文件         871  2015-01-01 01:01  dsa\src\avl\avl_implementation.h
     文件        1387  2015-01-01 01:01  dsa\src\avl\avl_insert.h
     文件         976  2015-01-01 01:01  dsa\src\avl\avl_macro.h
     文件        1241  2015-01-01 01:01  dsa\src\avl\avl_remove.h
     文件         572  2015-01-01 01:01  dsa\src\avl\avl_test.h
     文件        2728  2015-01-01 01:01  dsa\src\avl\main.cpp
     目录           0  2015-01-01 01:01  dsa\src\bintree\
     文件        2262  2015-01-01 01:01  dsa\src\bintree\binnode.h
     文件        1265  2015-01-01 01:01  dsa\src\bintree\binnode_implementation.h
     文件         757  2015-01-01 01:01  dsa\src\bintree\binnode_insert.h
     文件         550  2015-01-01 01:01  dsa\src\bintree\binnode_macro.h
     文件         818  2015-01-01 01:01  dsa\src\bintree\binnode_macro_avl.h
     文件        1696  2015-01-01 01:01  dsa\src\bintree\binnode_macro_basic.h
     文件         772  2015-01-01 01:01  dsa\src\bintree\binnode_macro_redblack.h
     文件         685  2015-01-01 01:01  dsa\src\bintree\binnode_size.h
     文件        1069  2015-01-01 01:01  dsa\src\bintree\binnode_stretchbyzag.h
     文件         869  2015-01-01 01:01  dsa\src\bintree\binnode_stretchbyzig.h
     文件        1004  2015-01-01 01:01  dsa\src\bintree\binnode_succ.h
     文件        1224  2015-01-01 01:01  dsa\src\bintree\binnode_travinorder.h
     文件        1127  2015-01-01 01:01  dsa\src\bintree\binnode_travinorder_i1.h
     文件         952  2015-01-01 01:01  dsa\src\bintree\binnode_travinorder_i2.h
     文件        1255  2015-01-01 01:01  dsa\src\bintree\binnode_travinorder_i3.h
     文件        1055  2015-01-01 01:01  dsa\src\bintree\binnode_travinorder_i4.h
     文件         694  2015-01-01 01:01  dsa\src\bintree\binnode_travinorder_r.h
     文件         979  2015-01-01 01:01  dsa\src\bintree\binnode_travlevel.h
............此处省略770个文件信息

评论

共有 条评论