美文网首页Daily Reading 群的分享
挑战程序设计竞赛11.3

挑战程序设计竞赛11.3

作者: 程序员一飞 | 来源:发表于2016-11-03 21:08 被阅读19次

今天读了二叉搜索树的实现以及set和map的简单用法。

 二叉搜索树实际上就是一颗二叉树,但它有一个特点,就是每个节点左二子的值小于它的值,右儿子的值大于它的值。

由于是一个树形结构,他能高效的进行插入,删除,查找。每次操作时间复杂度都在logn以内。

C++的stl里面有用二叉搜索树实现的set容器,可以很方便地直接调用。

还有map容器。下面是这两个容器的简单用法。

set的基本用法

#include

#include

#include

//set是一个有序的无重复的容器

//还有可以重复的multiset

using namespace std;

int main()

{

   set se;

   se.insert(3);

   se.insert(5);

   se.insert(1);

   set::iterator ite;

   for(ite=se.begin();ite!=se.end();ite++){

       printf("%d ",*ite);

   }

   printf("\n");

   ite=se.find(3);

   if(ite==se.end()){

       printf("查找3失败\n");

   }else{

       printf("查找3成功\n");

   }

   se.erase(1);

   for(ite=se.begin();ite!=se.end();ite++){

       printf("%d ",*ite);

   }

   return 0;

}

/*测试结果

1 3 5

查找3成功

3 5

*/

map的基本用法

#include

#include

#include

#include

using namespace std;

int main()

{

   map m;

   m.insert(make_pair(10,"tom"));

   m.insert(make_pair(30,"dom"));

   m[20]="amy";

   map::iterator it;

   it=m.find(30);

   if(it!=m.end()){

       printf("查找30成功\n");

   }else{

       printf("查找失败\n");

   }

   for(it=m.begin();it!=m.end();it++){

       printf("%d %s\n",it->first,it->second);

   }

   printf("\n");

   m.erase(30);

   for(it=m.begin();it!=m.end();it++){

       printf("%d %s\n",it->first,it->second);

   }

   return 0;

}

/*测试结果

查找30成功

10 tom

20 amy

30 dom

10 tom

20 amy

*/

相关文章

  • 挑战程序设计竞赛11.3

    今天读了二叉搜索树的实现以及set和map的简单用法。 二叉搜索树实际上就是一颗二叉树,但它有一个特点,就是每个节...

  • 用快速幂运算求斐波那契,时间复杂度降到O(logn)

    思路来自《挑战程序设计竞赛》 可运行的C++代码如下

  • 简介

    这是关于《挑战程序设计竞赛(第2版)》的刷题记录。因为POJ评测快,全英文,评测结果反馈与ICPC竞赛相同,所以选...

  • 挑战程序设计竞赛11.7

    今天读的挑战程序设计竞赛的图的最短路问题,只看了一个dijkstra算法,但没怎么看明白。 又把昨天的bellma...

  • 挑战程序设计竞赛11.4

    /* 今天读了一种叫做并查集的数据结构,以前做题做到了,但一些解题报告质量参差不齐, 自己只是理解个大概了,不知道...

  • 挑战程序设计竞赛11.2

    今天读了如何实现优先队列,及如何运用。可以用数组来表示二叉树,节点是从上到下从左到右的顺序紧凑排列,它最重要的性质...

  • 挑战程序设计竞赛11.11

    今天在高铁上读了一点,只看了辗转相除法。 int gcd(int a,int b){ if(b==0) retur...

  • 挑战程序设计竞赛11.5

    今天读了挑战程序设计竞赛的2.5,介绍了图的一些概念。 图的表示方法,邻接矩阵和邻接表。 邻接矩阵可以简单地建一个...

  • 多重集组合数

    在挑战程序设计竞赛第69页公式dp[i+1][j] = dp[i][j] + dp[i+1][j-1] - dp[...

  • 2015年“甲骨文杯”“全国Java程序设计大赛”

    一、竞赛介绍 “全国Java程序设计大赛”是面向全国各大高等院校在校学生和社会技术人士的程序设计竞赛活动。通过竞赛...

网友评论

    本文标题:挑战程序设计竞赛11.3

    本文链接:https://www.haomeiwen.com/subject/owdiuttx.html