数据结构与算法(自我整理)

  chap 1.1.1   群集

    群集是一种结构化的数据类型。它存储数据,并提供数据的添加、删除、更新操作,以及对群集的不同属性值的设置与返回操作。
    群集可以分为两类:线性的和非线性的。线性群集是一张元素列表,表中元素顺次相连,线性群集中的元素通常由位置来决定次序。
    非线性群集所包含的元素是没有位置次序之分。

  chap5.1.1 堆栈的操作

       堆栈的最基本的两种操作就是向堆栈内添加和删除数据项。push(进栈)和Pop(出栈)。Pop操作会返回栈顶的数据项,但同时会将栈顶的数据项移除。所有还有Peek(取数)操作。

  chap5.2 STACK类

  Stack类是Icollection接口的一个实现。它代表一个LIFO(Last In First Out 后进先出法)群集或一个堆栈。

  chap  5.3.3  queue(线性表)类

   又称为队列,是一种先进先出(FIFO)的数据结构。
    堆栈是一个LIFO(后进先出)群集
  Queue myQueue=new  Queue(10);//队列的长度,当队列的长度已满后,即会自动增加一倍的长度。
  Queue myQueue=new Queue(10,3);//第二个参数是为队列长度已满后增加长度的倍数,当前增加的倍数为三倍。。
  
      Queue [] qs =   new   Queue [10];
      Queue < int > qss =   new   Queue < int > { };
     qs[0].Dequeue();//移除并返回Queue开始处的对象。


chap 5 小结
  1.   一、堆栈的最基本操作就是向堆栈内添加数据和移除数据。Push(进栈)和Pop(出栈)。
  2.   二、Peek()方法能让人们不取出数据而将栈顶(栈顶)的数据项取出。如果没有这种方法就只能将值移除后才知道它的值。
  3.   三、堆栈的容量当装满后机会自动扩充大小,以当前大小的一倍扩大(不同情况下扩充大小倍数不同)
  4.   四、队列是一种把数据从表的末端放入并在表的前端移除的数据结构。队列会按照数据项出现的从顺序来存储它。队列是先进先出(FIFO)的数据结构的实例。

chap  8 小结
  1. 后台使用正则表达式:Regex类。需要引用
System.Text.RegularExpressions;

              string   s1 =   "hello word" ;
              Match   match =   null ;
              Regex   myRegex =   new   Regex ( "wo" );
            match = myRegex.Match(s1);
              if   (match.Success)
            {
                  Console .WriteLine(match.Value +   "\t"   + match.Index);
            }
   创建一个新的Regex对象是需要传入一个匹配的正则表达式传递给构造器。在通过Match的Success方法判断匹配结果。
  1.   Match类只能存储一个匹配值。当存在多个匹配值的时候,可以存储到MatchCollection对象中。
          
    using   System;
    using   System.Text.RegularExpressions;
    class   chapter8
    {
    static   void   Main()
    {
    Regex   reg=   new   Regex("the");
    string   str1   =   "the   quick   brown   fox   jumped   over   the   lazy   dog";
    //MatchCollection 对象,可存储多个匹配结果
    MatchCollection   matchSet;
    matchSet=   reg.Matches(str1);
    if(matchSet.Count>   0)
    foreach(Match   aMatch   in   matchSet)
    Console.WriteLine("found   a   match   at:   "   +   aMatch.Index);
    Console.Read();
    }
    }


    在编写正则表达式时添加一些数量词的匹配,诸如“精确匹配两次、匹配一次或者多次”。
       string[]   words=   new   string[]   {"bad",   "boy",   "baaad","bear",   "bend"};
       if(Regex.IsMatch(word,   "ba+"))
        该值将会匹配到bad和baaad,意思是以“b”开头并且包含一个或者多个“a”的字符串。
         一、“?”是一种匹配一次或者零次的数量词,如果将之前的匹配结果更换为“ba?d”,那么有且只有一个匹配结果即为“bad”。
          二、 还有的方法即为有限数量的匹配,{n}或者{n,m}。该情况同样适用于[a-z]。
         三、“.”则匹配的是每一个字符(可拿字母数组作为测试),如果单独匹配“。”则匹配的所有位置的值,在当前情况下即可增加约束条件,匹配条件为“t.e”,即会匹配“the”,该匹配条件不会匹配“thhhe”类似的值。
   


chap 9 小结   字典:   DictionaryBase 类和   SortedList
  
   字典是一种把数据作为键值对来存储的数据结构,存储在字典中的键值对实际上是作为DIctionaryEntry对象来存储的。 DictionaryEntry 结构提供了两个域,一个用于关键字而另一个用于值。在这个结构中所要关注的只是   Key 属性和   Value 属性这两个属性(或方法)
// Item方法用来回给定特殊关键字的值。这里将关键字传递给InnerHashTable对象相应的Item方法。
public   string   Item( string   name)
        {
              return   base .InnerHashtable[name].ToString();
        }
   通用的 KeyValuePair类
   C# 语言提供了一种小类用来允许创建象字典式的对象,   此对象是基于关键字来存储数据的。   这种类被称为是 KeyVal   uePair 类。   由于每个对象只能持有一个关键字和一个值,   所以它的使用是受到限制的。
KeyValuePair < string ,   int >[] keys =   new   KeyValuePair < string ,   int >[10];
            keys[0] =   new   KeyValuePair < string ,   int >( "Tom" , 1);
            keys[1] =   new   KeyValuePair < string ,   int >( "Jack" , 2);
              //当前KeyValuePair<string, int>数组中有十个位置,但参数没有占满。输出时会将其他位置以空或者以0的方式显示。(无关循环的事情)
              foreach   ( KeyValuePair < string ,   int > item   in   keys)
            {
                  Console .WriteLine(item.Key +   "\t"   + item.Value);
            }

sortList类
    SortList类是按照分类顺序基于键值来存储键值对。当存储的关键字很重要时可以使用这种数据结构。
             SortedList < string ,   int > sorts =   new   SortedList < string ,   int >();
            sorts.Add( "name1" , 1);
            sorts.Add( "name7" , 7);
            sorts.Add( "name4" , 4);
              foreach   ( object   i   in   sorts.Keys)
            {
                  Console .WriteLine( "Name:" +i);
            }
              Console .WriteLine();
            //输出name4对于的值
              Console .WriteLine( int .Parse(sorts[ "name4" ].ToString()));
              Console .WriteLine();
            //通过找到的值可以操作(还有IndexOfKey方法获取到键值)
              int   index1 = sorts.IndexOfValue( int .Parse(sorts[ "name4" ].ToString()));
              Console .WriteLine(index1);
              Console .WriteLine();
              Console .Read();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值