基础知识 - .Net 数据结构

1.一个带头节点的单链表,相邻两个互换位置

 答:有两种情况,相邻和不相邻。

首先找两个节点的前驱,可以通过前驱来判断是否相邻。

相邻则改变3个结点的next指针,不相邻则改变4个结点的next指针。

2.一组数字首尾循环报数,数到第七个抛出,然后继续数,怎么实现(提示:数据结构)

答:队列,单链表

3.栈(Stack)和堆(Heap)的区别

答:堆栈(stack):是计算机科学中一种特殊的串列形式的抽象数据类型,其特殊之处在于只能允许在链表或数组的一端(称为堆栈顶端指针,top)进行加入数据(push)和输出数据(pop)的运算。

堆(Heap)是计算机科学中的一种特别的树状数据结构。若是满足以下特性,即可称为堆:“给定堆中任意节点 P 和 C,若 P 是 C 的父节点,那么 P 的值会小于等于(或大于等于) C 的值”。若父节点的值恒小于等于子节点的值,此堆称为最小堆(min heap);反之,若父节点的值恒大于等于子节点的值,此堆称为最大堆(max heap)。在堆中最顶端的那一个节点,称作根节点(root node),根节点本身没有父节点(parent node)。

4.C#中类(class)与结构(struct)的异同

答:结构Struct是值类型:值类型在堆栈上分配地址(有可能不是);类Class是引用类型:引用类型在堆上分配地址;结构是值类型所以结构之间的赋值是创建新的结构,而类是引用类型,类之间的赋值只是复制引用。

posted @ 2019-09-11 15:33  FH1004322  阅读(310)  评论(0)    收藏  举报