亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? avl_ex1.cpp

?? AVL Tree的實現
?? CPP
字號:
// Abstract AVL Tree Template Example 1.
// This code is in the public domain.
// Version: 1.2  Author: Walt Karas

// This example shows how to use the AVL template to create the
// env class.  The env class stores multiple variables with string
// names and string values, similar to the environment in a UNIX
// shell.

#include <string.h>
#include <stdio.h>

#include "avl_tree.h"

// An "environment" of variables and (string) values.
class env
  {
  private:

    struct node
      {
	// Child pointers.
	node *gt, *lt;

	// First character of variable name string is actually balance factor.
	// Remaining characters are name as nul-terminated string.
	char *name;

	// Value of variable, nul-terminated string.
	char *value;
      };

    // Abstractor class for avl_tree template.
    struct abstr
      {
	typedef node *handle;

	typedef const char *key;

	typedef unsigned size;

	static handle get_less(handle h, bool access) { return(h->lt); }
	static void set_less(handle h, handle lh) { h->lt = lh; }
	static handle get_greater(handle h, bool access) { return(h->gt); }
	static void set_greater(handle h, handle gh) { h->gt = gh; }

	static int get_balance_factor(handle h)
	  { return((signed char) (h->name[0])); }
	static void set_balance_factor(handle h, int bf) { h->name[0] = bf; }

	static int compare_key_node(key k, handle h)
	  { return(strcmp(k, (h->name) + 1)); }

	static int compare_node_node(handle h1, handle h2)
	  { return(strcmp((h1->name) + 1, (h2->name) + 1)); }

	static handle null(void) { return(0); }

	// Nodes are not stored on secondary storage, so this should
	// always return false.
	static bool read_error(void) { return(false); }
      };

    typedef abstract_container::avl_tree<abstr> tree_t;

    tree_t tree;

  public:

    void set(const char *name, const char *value)
      {
	node *n = tree.search(name);

	if (!n)
	  {
	    // This variable does not currently exist.  Create a node for it.
	    n = new node;
	    n->name = new char [strlen(name) + 2];
	    strcpy(n->name + 1, name);
	    tree.insert(n);
	  }
	else
	  // Delete current value.
	  delete [] n->value;

	if (value)
	  {
	    if (strlen(value) == 0)
	      value = 0;
	  }

	if (value)
	  {
	    n->value = new char [strlen(value) + 1];
	    strcpy(n->value, value);
	  }
	else
	  {
	    // Variable is being set to empty string, which deletes it.
	    tree.remove(name);
	    delete [] n->name;
	    delete n;
	  }
      }

    const char *get(const char *name)
      {
	node *n = tree.search(name);

	return(n ? n->value : "");
      }

    // Dump environment in ascending order by variable name.
    void dump(void)
      {
	tree_t::iter it;
	node *n;

	it.start_iter_least(tree);

	for (n = *it; n; it++, n = *it)
	  printf("%s=%s\n", n->name + 1, n->value);

      }

    // Clear environment.
    void clear(void)
      {
	tree_t::iter it;
	node *n;

	it.start_iter_least(tree);

	// A useful property of this data structure is the ability to do a
	// "death march" through it.  Once the iterator (forward or backward)
	// has stepped past a node, the node is not accessed again (assuming
	// you don't reverse the direction of iteration).  Of course, if
	// you've corrupted the nodes, you need to make the tree as empty.

	for (n = *it; n; n = *it)
	  {
	    it++;
	    delete [] n->name;
	    delete [] n->value;
	    delete n;
	  }
      }
  };

// Demo main program.
int main(void)
  {
    env e;

    e.set("The", "The value");
    e.set("quick", "quick value");
    e.set("brown", "brown value");
    e.set("fox", "fox value");
    e.set("jumped", "jumped value");
    e.set("over", "over value");
    e.set("the", "the value");
    e.set("lazy", "lazy value");
    e.set("dog", "dog value");

    e.set("DOG", "DOG value");
    e.set("DOG", 0);

    printf("The value of \"dog\" is \"%s\"\n\n", e.get("dog"));

    printf("DUMP\n");
    e.dump();

    return(0);
  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品久久久久久动态图| 精品av综合导航| 欧美视频第二页| 91丨porny丨中文| 丁香亚洲综合激情啪啪综合| 国产成人综合网| 福利一区二区在线观看| 国产69精品一区二区亚洲孕妇| 麻豆精品新av中文字幕| 久久国产精品72免费观看| 免费在线观看日韩欧美| 经典三级一区二区| 久久草av在线| 丁香网亚洲国际| www.久久久久久久久| www.日韩av| 欧美午夜免费电影| 日韩一级片网址| 久久久久国产一区二区三区四区| 国产农村妇女毛片精品久久麻豆 | 精品国产一区二区三区av性色| 日韩欧美成人一区| 久久这里只有精品视频网| 亚洲国产精品v| 亚洲一区二区视频在线| 视频一区二区中文字幕| 九一九一国产精品| 99这里都是精品| 欧美性猛交xxxxxxxx| 日韩欧美成人午夜| 亚洲乱码日产精品bd| 亚洲一区av在线| 精品一区二区三区在线观看国产 | 欧美日韩成人在线一区| 欧美精品一区二区在线观看| 一区二区三区蜜桃网| 青草av.久久免费一区| 99久久精品一区| 91精品午夜视频| 国产精品视频yy9299一区| 日韩制服丝袜av| 粉嫩蜜臀av国产精品网站| 在线视频欧美精品| 久久久久久97三级| 天堂成人国产精品一区| 99久久婷婷国产| 日韩欧美中文字幕一区| 亚洲精品中文字幕乱码三区| 精品制服美女久久| 欧美性猛交xxxxxxxx| 亚洲国产经典视频| 麻豆精品国产91久久久久久| 在线一区二区三区四区五区 | www.亚洲精品| 精品成人a区在线观看| 一个色在线综合| 高清不卡在线观看av| 精品少妇一区二区| 亚洲mv大片欧洲mv大片精品| av中文一区二区三区| 欧美激情自拍偷拍| 久久超碰97人人做人人爱| 555夜色666亚洲国产免| 亚洲图片有声小说| 91蝌蚪国产九色| 国产精品久久久久久久久免费桃花| 麻豆国产精品777777在线| 欧美日韩免费电影| 亚洲激情av在线| 91久久精品一区二区二区| 中文字幕中文字幕一区| proumb性欧美在线观看| 国产欧美日韩不卡免费| 国产1区2区3区精品美女| 久久婷婷成人综合色| 国产最新精品精品你懂的| 国产精品久久午夜夜伦鲁鲁| 国产精品综合二区| 日韩欧美一区二区在线视频| 日韩国产精品大片| 日韩午夜在线影院| 久久aⅴ国产欧美74aaa| 欧美mv日韩mv国产网站| 国产在线一区观看| 欧美韩国日本不卡| av午夜一区麻豆| 一区二区三区在线观看欧美| 欧洲精品中文字幕| 婷婷久久综合九色国产成人 | 国产午夜精品一区二区三区视频| 九九国产精品视频| 国产日本亚洲高清| 一本久久精品一区二区| 亚洲一区二区三区中文字幕 | 欧美一区二区三区免费视频| 日韩av不卡一区二区| 欧美大片顶级少妇| 成人少妇影院yyyy| 亚洲一区在线观看免费| 91麻豆精品国产91久久久久久| 蜜桃久久精品一区二区| 国产日韩综合av| 日本精品视频一区二区三区| 亚洲午夜免费电影| 久久久久久久久久久久久夜| yourporn久久国产精品| 亚洲一区二区三区视频在线| 欧美一级高清大全免费观看| 国产精品1区2区3区| 亚洲美女偷拍久久| 欧美mv日韩mv国产网站app| 99国产精品99久久久久久| 日韩电影网1区2区| 国产精品毛片无遮挡高清| 欧美偷拍一区二区| 久久精品72免费观看| 樱花草国产18久久久久| 欧美大肚乱孕交hd孕妇| 在线影视一区二区三区| 国产在线精品免费av| 天堂成人免费av电影一区| 国产精品午夜春色av| 欧美成人午夜电影| 欧美曰成人黄网| 91丨国产丨九色丨pron| 国产一区二区视频在线播放| 水蜜桃久久夜色精品一区的特点| 国产精品拍天天在线| 久久毛片高清国产| 欧美精品一二三四| 一本大道久久精品懂色aⅴ| 国产一区二区三区免费看 | 久久精品视频免费观看| 69p69国产精品| 日本高清免费不卡视频| 成人av网站在线| 黄色小说综合网站| 日本欧美一区二区在线观看| 亚洲精品视频免费看| 国产精品无圣光一区二区| wwwwww.欧美系列| 日韩欧美在线网站| 8x福利精品第一导航| 欧美伦理视频网站| 欧美久久一区二区| 欧美色偷偷大香| 欧美日韩一区二区三区高清| 91丝袜美女网| 色呦呦日韩精品| 色94色欧美sute亚洲线路一ni| jlzzjlzz欧美大全| 成人h动漫精品一区二区| 丁香婷婷综合激情五月色| 国产一区视频导航| 国产精品一区不卡| 不卡av在线网| 91色综合久久久久婷婷| 99久久精品国产精品久久| 成人av手机在线观看| av资源站一区| 欧美日韩在线三级| 在线播放一区二区三区| 欧美日韩午夜在线视频| 91麻豆精品国产91久久久久| 欧美一区二区在线观看| 欧美成人女星排行榜| 国产视频一区在线播放| 国产精品久久久久桃色tv| 最近日韩中文字幕| 亚洲自拍欧美精品| 日韩极品在线观看| 国产一区二区三区在线观看免费| 国产成人午夜精品5599| 色综合久久88色综合天天免费| 欧美色大人视频| 欧美成人艳星乳罩| 国产精品欧美极品| 亚洲一区中文日韩| 狠狠色伊人亚洲综合成人| 成人涩涩免费视频| 欧美高清激情brazzers| 精品国产区一区| 亚洲欧美另类综合偷拍| 日本不卡不码高清免费观看| 高清国产一区二区三区| 欧美美女直播网站| 欧美国产精品一区| 五月天精品一区二区三区| 国产成人在线视频播放| 欧美色精品在线视频| 国产欧美一区二区精品婷婷| 亚洲精品ww久久久久久p站| 蜜桃一区二区三区在线| 99精品一区二区三区| 日韩精品一区在线| 亚洲欧美另类小说| 国产精品456| 日韩午夜激情免费电影| 亚洲精品视频免费看| 国产成人三级在线观看|