当前位置: 首页 > news >正文

提高网站seo织梦做网站首页

提高网站seo,织梦做网站首页,营销的三个基本概念是什么,东道设计应届生收入文件的大小尽可能的小。 想了四种方法#xff1a; 第一种方法#xff1a;把二叉树按前序和中序遍历一遍#xff0c;存两次二叉树。 第二种方法#xff1a;将二叉树按左枝为0#xff0c;右枝为1进行路径编码#xff0c;那么每个节点都可以表示成#xff0c;节点信息和路径…文件的大小尽可能的小。 想了四种方法 第一种方法把二叉树按前序和中序遍历一遍存两次二叉树。 第二种方法将二叉树按左枝为0右枝为1进行路径编码那么每个节点都可以表示成节点信息和路径信息进行永久化。       第三种方法将二叉树变成满二叉树采用数组存储满二叉树那么数据index和根据二叉树的节点信息进行永久化。 0123456789ROOTLRLLLRRLRRLLLLLRLRL 第四种方法采用一个位图和所有节点信息进行存储位图上的0代表着相应满二叉树的节点没有节点1代表有节点信息。      四种方法比较第一种方法冗余信息量刚好是原有数据的两倍。                                  第二种方法存储的是节点信息和路径信息冗余信息量是路径信息*节点数                                  第三种方法冗余信息为sizeof(unsigned int) * 节点数                                  第四种方法冗余信息为树的层数K2^k -1bit        因此第四种方法在二叉树是满二叉树或者二叉树的层数比较小的情况下信息量比较小但是在树的层比较丰富的情况下冗余信息非常大。我觉得也不是什么特别好的方法。貌似我还是没有得到正确答案。 [html] view plaincopyprint? #includeiostream  #include fstream  #includemath.h    #define  max(a,b) ((a)(b)?(a):(b))    using namespace std;  //随机数大小  const int NUMBER  9;  //修改树的深度  const int DEPTH  6;    //文件流  ofstream fout3(serialize3.txt);  ofstream fout4(serialize4.txt);  ofstream fout(tree.txt);    //树节点信息  typedef struct Node  {      int data;      Node * left;      Node * right;  } BinaryTree;      //随机生成二叉树  void generate(Node ** tree, int d)  {      *tree  (Node *)malloc(sizeof(Node));      (*tree)-data  rand()%NUMBER  1;        int isleft  rand()%DEPTH;      if(disleft  DEPTH)          generate(((*tree)-left), d1);      else          (*tree)-left  NULL;            int isright  rand()%DEPTH;      if (disright  DEPTH)      {          generate(((*tree)-right), d1);      }      else          (*tree)-right  NULL;  }    //获取树的深度  int getTreeDepth(Node * tree)  {      if (tree  NULL)      {          return 0;      }      int left  getTreeDepth(tree-left);      int right  getTreeDepth(tree-right);            return (max( left, right )  1);  }    //打印第i层树  void printTreeLevel(Node * tree, int index, int level,int depth)  {      if(tree  NULL)      {          int length  pow(2.0,(depth-index))-1;          for (int i1; i  length; i )          {              fout    ;              cout  ;          }          return;      }      if(index  level)      {          //左子树宽度          int length  pow(2.0,(depth-level-1))-1;          for (int j1; j  length; j )          {              fout   ;              cout  ;          }          fout  tree-data;          cout  tree-data;          //右子树宽度          for (int j1; j  length; j )          {              fout   ;              cout  ;          }          return;      }        printTreeLevel(tree-left, index 1,level, depth);      fout   ;      cout  ;      printTreeLevel(tree-right, index1, level, depth);  }    //逐层遍历二叉树  //两种思路一种采用广度遍历的方法利用链表空间逐层存储逐层打印  //一种使用递归的方法逐层打印  void printTree(Node * tree)  {      int depth  getTreeDepth(tree);        for (int i0; i  depth; i )      {          printTreeLevel(tree, 0, i,depth);          fout  endl;          cout endl;      }  }    //序列化四种方法  //第一种方法把二叉树按前序和中序遍历一遍存两次二叉树。  //第二种方法将二叉树按左枝为0右枝为1进行路径编码那么每个节点都可以表示成节点信息和路径信息进行永久化。  //第三种方法将二叉树变成满二叉树采用数组存储满二叉树那么数据index和根据二叉树的节点信息进行永久化。  //第四种方法采用一个位图和所有节点信息进行存储位图上的0代表着相应满二叉树的节点没有节点1代表有节点信息。  //四种方法比较第一种方法冗余信息量刚好是原有数据的两倍。  //第二种方法存储的是节点信息和路径信息冗余信息量是路径信息*节点数  //第三种方法冗余信息为sizeof(unsigned int) * 节点数  //第四种方法冗余信息为树的层数K2^k -1bit   //因此第四种方法在二叉树是满二叉树或者二叉树的层数比较小的情况下信息量比较小但是在树的层比较丰富的情况下  //冗余信息非常大。我觉得也不是什么特别好的方法。貌似我还是没有得到正确答案。    //第三种方法序列化  void serialize_3(Node *tree, unsigned int index)  {      if (tree  NULL)      {          return;      }            fout3  tree-data     index  endl;      serialize_3(tree-left, index*2);      serialize_3(tree-right, index*2 1);  }    //设置bitmap  void setbitmap(Node * tree, int * map,unsigned int bit, int level)  {      if (tree  NULL)      {          return;      }            unsigned int index  bit / 32;      unsigned int b  bit%32;      map[index]  map[index] | (1b);      fout4  tree-data   ;      setbitmap(tree-left, map,  bit * 21, level1);      setbitmap(tree-right, map, bit * 2 2 , level1);  }    //第四种方法永久化  void seralize_4(Node* tree)  {      int depth  getTreeDepth(tree);            int len  (depth-5)0? (depth-5) : 0;      len  (1len);      int* map  new int[len];      memset(map, 0, sizeof(int) * len);      setbitmap(tree, map, 0, 1);        fout4endl;        for (int i0; i len; i )      {          fout4 hex  map[i];      }      fout4 endl;      delete [] map;  }    //释放内存  void deleteTree(Node * tree)  {      if (tree  NULL)      {          return;      }      deleteTree(tree-left);      deleteTree(tree-right);      free(tree);  }    int main()  {      BinaryTree * treeNULL;        //随机生成二叉树      cout  随机生成二叉树并保存到tree.txtendl;      generate(tree, 0);        //树层比较低的打印出二叉树      if (DEPTH  15)      {          printTree(tree);      }        //第三种序列化方法      cout  用第三种方法持久化到serialize3.txt endl;      serialize_3(tree, 1);        //第四种序列化方法      cout 用第四种方法持久化到serialize4.txt endl;      seralize_4(tree);        //回收空间      deleteTree(tree);      system(pause);      return 0;  }   #includeiostream #include fstream #includemath.h#define max(a,b) ((a)(b)?(a):(b))using namespace std; //随机数大小 const int NUMBER 9; //修改树的深度 const int DEPTH 6;//文件流 ofstream fout3(serialize3.txt); ofstream fout4(serialize4.txt); ofstream fout(tree.txt);//树节点信息 typedef struct Node {int data;Node * left;Node * right; } BinaryTree;//随机生成二叉树 void generate(Node ** tree, int d) {*tree (Node *)malloc(sizeof(Node));(*tree)-data rand()%NUMBER 1;int isleft rand()%DEPTH;if(disleft DEPTH)generate(((*tree)-left), d1);else(*tree)-left NULL;int isright rand()%DEPTH;if (disright DEPTH){generate(((*tree)-right), d1);}else(*tree)-right NULL; }//获取树的深度 int getTreeDepth(Node * tree) {if (tree NULL){return 0;}int left getTreeDepth(tree-left);int right getTreeDepth(tree-right);return (max( left, right ) 1); }//打印第i层树 void printTreeLevel(Node * tree, int index, int level,int depth) {if(tree NULL){int length pow(2.0,(depth-index))-1;for (int i1; i length; i ){fout ;cout ;}return;}if(index level){//左子树宽度int length pow(2.0,(depth-level-1))-1;for (int j1; j length; j ){fout ;cout ;}fout tree-data;cout tree-data;//右子树宽度for (int j1; j length; j ){fout ;cout ;}return;}printTreeLevel(tree-left, index 1,level, depth);fout ;cout ;printTreeLevel(tree-right, index1, level, depth); }//逐层遍历二叉树 //两种思路一种采用广度遍历的方法利用链表空间逐层存储逐层打印 //一种使用递归的方法逐层打印 void printTree(Node * tree) {int depth getTreeDepth(tree);for (int i0; i depth; i ){printTreeLevel(tree, 0, i,depth);fout endl;cout endl;} }//序列化四种方法 //第一种方法把二叉树按前序和中序遍历一遍存两次二叉树。 //第二种方法将二叉树按左枝为0右枝为1进行路径编码那么每个节点都可以表示成节点信息和路径信息进行永久化。 //第三种方法将二叉树变成满二叉树采用数组存储满二叉树那么数据index和根据二叉树的节点信息进行永久化。 //第四种方法采用一个位图和所有节点信息进行存储位图上的0代表着相应满二叉树的节点没有节点1代表有节点信息。 //四种方法比较第一种方法冗余信息量刚好是原有数据的两倍。 //第二种方法存储的是节点信息和路径信息冗余信息量是路径信息*节点数 //第三种方法冗余信息为sizeof(unsigned int) * 节点数 //第四种方法冗余信息为树的层数K2^k -1bit //因此第四种方法在二叉树是满二叉树或者二叉树的层数比较小的情况下信息量比较小但是在树的层比较丰富的情况下 //冗余信息非常大。我觉得也不是什么特别好的方法。貌似我还是没有得到正确答案。//第三种方法序列化 void serialize_3(Node *tree, unsigned int index) {if (tree NULL){return;}fout3 tree-data index endl;serialize_3(tree-left, index*2);serialize_3(tree-right, index*2 1); }//设置bitmap void setbitmap(Node * tree, int * map,unsigned int bit, int level) {if (tree NULL){return;}unsigned int index bit / 32;unsigned int b bit%32;map[index] map[index] | (1b);fout4 tree-data ;setbitmap(tree-left, map, bit * 21, level1);setbitmap(tree-right, map, bit * 2 2 , level1); }//第四种方法永久化 void seralize_4(Node* tree) {int depth getTreeDepth(tree);int len (depth-5)0? (depth-5) : 0;len (1len);int* map new int[len];memset(map, 0, sizeof(int) * len);setbitmap(tree, map, 0, 1);fout4endl;for (int i0; i len; i ){fout4 hex map[i];}fout4 endl;delete [] map; }//释放内存 void deleteTree(Node * tree) {if (tree NULL){return;}deleteTree(tree-left);deleteTree(tree-right);free(tree); }int main() {BinaryTree * treeNULL;//随机生成二叉树cout 随机生成二叉树并保存到tree.txtendl;generate(tree, 0);//树层比较低的打印出二叉树if (DEPTH 15){printTree(tree);}//第三种序列化方法cout 用第三种方法持久化到serialize3.txt endl;serialize_3(tree, 1);//第四种序列化方法cout 用第四种方法持久化到serialize4.txt endl;seralize_4(tree);//回收空间deleteTree(tree);system(pause);return 0; }运行效果 第一步随机生成一个二叉树并逐层打印然后采用两种序列化方法进行序列化。 第三种序列化文件为 [html] view plaincopyprint? 6 1  8 2  9 4  8 5  3 11  7 22  9 23  7 3  1 6  8 12  6 24  3 49  9 7  4 15  3 31   6 1 8 2 9 4 8 5 3 11 7 22 9 23 7 3 1 6 8 12 6 24 3 49 9 7 4 15 3 31第四种序列化方法为 [html] view plaincopyprint? 6 8 9 8 3 7 9 7 1 8 6 3 9 4 3       --数据  40e04c7f10000                       --位图用16进制表示   6 8 9 8 3 7 9 7 1 8 6 3 9 4 3 --数据 40e04c7f10000 --位图用16进制表示如上面分析的一样第四种方法在二叉树是满二叉树或者二叉树的层数比较小的情况下信息量比较小但是在树的层比较丰富的情况下冗余信息非常大。如在15层的二叉树中[html] view plaincopyprint? 6 8 9 4 8 3 7 6 4 1 1 6 3 7 9 8 3 7 3 6 3 8 3 7 2 5 6 4 3 1 8 4 2 2 4 3 4 1 9 6 7 4 7 9 5 8 8 7 3 7 9 3 6 3 9 3 3 2 3 5 1 7 5 1 3 9 2 1 3 1 3 3 6 6 2 7 9 4 6 2 7 9 3 2 1 7 4 3 3 1 9 3 1 9 7 6 1 8 8 7 3 2 6 6 8 5 2 3 8 2 5 5 9 4 6 9 2 3 1 2 2 5 2 1 9 9 4 7 6 4 8 5 9 4 8 9 9 9 6 9 5 8 3 9 9 8 3 9 3 5 6 9 6 2 2 6 2 2 5 1 2 1 1 5 6 9 9 5 8 9 5 4 3 8 6 2 3 4 9 9 2 7 7 8 7 6 7 2 2 9 8 1 3 1 3 3 4 3 3 7 3 5 7 9 7 2 4 3 5 2 1 5 3 9 2 8 3 6 3 2 2 1 2 9 3 1 5 5 8 2 4 6 3 4 2 5 5 5 7 6 4 6 5 8 6 2 5 9 6 3 6 3 1 8 1 9 4 6 9 2 4 1 1 5 3 7 2 2 7 1 8 3 4 9 2 6 9 3 8   3e8ffbff1f7901eb3d9867fe6004a7860038b380000606daf48130098068070189048001e8000009022418079e361e000007000838000794808400040800000001f1800018000820008006605401300580650004600000002e82801d8000802120000000018000000002c000118000008000000060000404105800000000400000100000000001928001000800001a21100000000000000008000000020000000000860000000020030000004000000020042000000000000000000000000000000200400098000005000000020000000000000000000000000000000000080000000000000000000000400000000000000000000002000000020180000100000000000000000000000000000000000000000000000000000000000000020000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000002000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000   6 8 9 4 8 3 7 6 4 1 1 6 3 7 9 8 3 7 3 6 3 8 3 7 2 5 6 4 3 1 8 4 2 2 4 3 4 1 9 6 7 4 7 9 5 8 8 7 3 7 9 3 6 3 9 3 3 2 3 5 1 7 5 1 3 9 2 1 3 1 3 3 6 6 2 7 9 4 6 2 7 9 3 2 1 7 4 3 3 1 9 3 1 9 7 6 1 8 8 7 3 2 6 6 8 5 2 3 8 2 5 5 9 4 6 9 2 3 1 2 2 5 2 1 9 9 4 7 6 4 8 5 9 4 8 9 9 9 6 9 5 8 3 9 9 8 3 9 3 5 6 9 6 2 2 6 2 2 5 1 2 1 1 5 6 9 9 5 8 9 5 4 3 8 6 2 3 4 9 9 2 7 7 8 7 6 7 2 2 9 8 1 3 1 3 3 4 3 3 7 3 5 7 9 7 2 4 3 5 2 1 5 3 9 2 8 3 6 3 2 2 1 2 9 3 1 5 5 8 2 4 6 3 4 2 5 5 5 7 6 4 6 5 8 6 2 5 9 6 3 6 3 1 8 1 9 4 6 9 2 4 1 1 5 3 7 2 2 7 1 8 3 4 9 2 6 9 3 8 3e8ffbff1f7901eb3d9867fe6004a7860038b380000606daf48130098068070189048001e8000009022418079e361e000007000838000794808400040800000001f1800018000820008006605401300580650004600000002e82801d8000802120000000018000000002c000118000008000000060000404105800000000400000100000000001928001000800001a21100000000000000008000000020000000000860000000020030000004000000020042000000000000000000000000000000200400098000005000000020000000000000000000000000000000000080000000000000000000000400000000000000000000002000000020180000100000000000000000000000000000000000000000000000000000000000000020000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000002000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000信息量随着层数的增加信息量成几何级扩大。但是研究16进制字符串位图数据可以发现里面的数据0出现的特别多因此下一步可以采用huffman编码等压缩编码方式对字符串数据进行数据压缩。 下一步采用二进制编码对位图数据进行数据压缩。
http://www.zqtcl.cn/news/259681/

相关文章:

  • 网站架构怎么做wordpress e-commerce themes
  • 哪些网站微信支付平台经营管理系统
  • 教育教学成果展示网站建设桂林网站开发公司
  • 唐山房产网站建设asp.net 网站压缩
  • 卫浴网站设计大型网站建设的必须条件
  • 肇庆制作企业网站seo网站建设课程
  • 没有公司自己做网站wordpress lms插件
  • 申请一个网站需要怎么做北京网络公司信息
  • 珠海市建设局网站分销系统价格多少
  • 杭州建网站企业seo营销工具
  • php旅游类网站开发wordpress 文章内
  • 企业管理外贸企业网站优化
  • 免费图纸网东莞百度快照优化排名
  • 南宁网站建设培训学校青海网站建设加q5299丶14602做词
  • 鱼台做网站多少钱wordpress pot
  • 招聘网站建设维护人员怎样自己开发一款软件
  • 上海网站制作怎么选泰安网红人物
  • 企业网站建设义乌南靖网站建设
  • 抖音电商网站建设如何制作app推广
  • 关键词的选择网站提示网站建设电销异议处理话术
  • 南京建设网站内容网站打开速度慢是否需要升级带宽
  • 内容类网站如何 流量厦门市建设局网站住房保障专栏
  • 朝城做网站公司网站内容建设要求age06
  • 云南省城乡建设培训中心网站备份wordpress网站
  • 快速建站公司地址vr哪家公司做得好
  • 网站空间怎么更换网站营销如何做
  • 制作单页网站要网址wordpress更新显示失败
  • 阿里巴巴网站建设公司设计网站制作
  • 泰安网站建设有哪些常见的cms网站程序有哪些
  • 九寨沟城乡建设官方网站深圳的互联网公司排名