C# 编程数据结构学习笔记

1:<队列>

.队列 遵循 先进先出的原则。

  Queue类型;函数 包含了队列的所有用法
队列中的几个方法;

  queue.Enqueue();//增加数据

  queue.Dequeue();//删除数据

  queue.peek();//获取首位元素

  queue.clear();//清空元素

  queue.Count//获取队列中所有元素的个数

2:<队列的分类>

  1:顺序队列:顺序存储 先进先出 

  2:链式存储:存取方便 速度快  链队列 因为中间不能插入和删除 所以简化一定的操作

3:栈和队列的应用  

  Stack<char> stack = new Stack<char>(); //创建一个入栈的对象stack
  Queue<char> queue = new Queue<char>(); //创建一个入队列的对象queue

4:排序

  排序是一种计算机的操作,

  把作为排序的依据的数据项我们称为“排序项”;排序项也叫做记录的关键码;

  关键码分为主关键码,他的排序是唯一的就像我们的身份证一样,次关键有可能是不唯一的就像每一个学科成绩有可能两个学生的成绩是一样的。

5:排序分为内部排序和外部排序,区别就在于数据是否全部来自于内存中。

  《1.插入排序》

    思想,在数组中从第二个数据开始于前面每一个数据相比较,如果大于前面的数据那么前面的数据将会后移到他的后边不断比较知道排序完成。

    代码实现过程:

     

    

class Program
{

static void InsertSort(int[] dataArray)
{
for (int i = 1; i < dataArray.Length; i++)
{
//拿到i位置的元素和前面的所有的元素作比较
//如果发现比i大的就让他向后移动
//从后向前遍历
int iValue = dataArray[i]; //保存i中的值
bool isInsert = false; //标志位
for (int j = i-1; j >=0; j--) //j代表的是前面与i比较的那个元素
{
if (dataArray[j]>iValue) //如果j中的值大于i中的值那么久把j中的值向后位移一位
{
dataArray[j + 1] = dataArray[j];
}
else
{
//如果发现一个比i小的值就不移动了那么这个时候就就将i的值和j+1的值对齐
dataArray[j + 1] = iValue;
isInsert = true;
break;
}
}
if (isInsert == false)
{
dataArray[0] = iValue;
}
}
}


static void Main(string[] args)
{
int[] data = new int[] {42,20,17,27,13,8,17,48 };
InsertSort(data);
foreach (var temp in data)
{
Console.Write(temp+" ");
}
Console.ReadKey();
}
}

原文地址:https://www.cnblogs.com/ylllove/p/6610835.html