设为首页 加入收藏

TOP

C语言去掉字符串集合重复元素(十五)
2013-09-24 09:23:24 来源: 作者: 【 】 浏览:978
Tags:语言 去掉 字符串 集合 重复 元素

 

  int main (int argc, const char * argv[])

  {

  int i = 0;

  //为了简化,下面使用了最恶心的初始化方法。方便复制粘贴

  struct sorted_order_str_map_with_thread smwt[20] = {{NULL, NULL, 0 NULL}};

  smwt[0].sorted_order_str =smwt[0].normal_order_str =  "323";

  smwt[0].self = &smwt[0];

  smwt[0].tag = 1;

  smwt .sorted_order_str = smwt .normal_order_str="223";

  smwt .self = &smwt ;

  smwt .tag = 2;

  smwt .sorted_order_str =smwt .normal_order_str= "723";

  smwt .self = &smwt ;

  smwt .tag = 3;

  smwt .sorted_order_str =smwt .normal_order_str= "823";

  smwt .self = &smwt ;

  smwt .tag = 4;

  smwt .sorted_order_str =smwt .normal_order_str= "123";

  smwt .self = &smwt ;

  smwt .tag = 5;

  smwt .sorted_order_str =smwt .normal_order_str= "423";

  smwt .self = &smwt ;

  smwt .tag = 6;

  smwt .sorted_order_str =smwt .normal_order_str= "123";

  smwt .self = &smwt ;

  smwt .tag = 7;

  smwt .sorted_order_str =smwt .normal_order_str= "723";

  smwt .self = &smwt ;

  smwt .tag = 8;

  smwt .sorted_order_str = smwt .normal_order_str="523";

  smwt .self = &smwt ;

  smwt .tag = 9;

  smwt .sorted_order_str =smwt .normal_order_str= "823";

  smwt .self = &smwt ;

  smwt .tag = 10;

  sort(smwt, 10, cmp_node, swap_node);

  //下面使用了最恶心的输出,经典###

  for (i = 0; i< 10; i++) {

  printf("###:%s    tag:%d\n", smwt[i].normal_order_str, smwt[i].tag);

  }

  for (i = 0; i< 10; i++) {

  printf("@@@:%s  tag:%d\n", smwt[i].sorted_order_str, smwt[i].tag);

  }

  for (i = 0; i< 10; i++) {

  if (smwt[i].tag != 0){

  printf("@@@&&:%s\n", smwt[i].normal_order_str);

  }

  }

  return 0;

  }

  下面的一种方法使用了标准的二叉树插入,注意,插入仅仅是为了删除重复元素,实际上,各种语言各种库的标准Map实现很多也是使用了树,比如java.util中的TreeMap就是使用了红黑树。下面直接给出代码,基于排序二叉树的代码:

  //

  //  main.c

  //  test-xcode

  //

  //  Created by ya zhao on 11-12-17.

  //  Copyright 2011年 __MyCompanyName__. All rights reserved.

  //

  #include <stdio.h>

  #include <stdlib.h>

  #include <string.h>

  struct string_node {

  char  *string;

  int tag;  //标示是否被删除

  };

  //标准排序二叉树

  struct string_tree {

  struct string_node  *strn;

  struct string_tree* left,*right;

  };

        

首页 上一页 12 13 14 15 16 17 18 下一页 尾页 15/18/18
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇在字符串中删除特定的字符 下一篇在数组中编辑定长字符串

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: