首页 > 编程知识 正文

数据结构常见笔试题,数据结构 面试题

时间:2023-05-04 06:01:53 阅读:173269 作者:1874

结构问题如何从链表中删除重复数据如何找到单链表倒数第k个元素如何将单链表自末输出如何找到单链表中间节点如何查找单链表中间节点如何检测是否存在链路不知道开头的指针如何删除如何判断两个链表是否相交如何判断两个链表相交的第一个节点如何插入排序方法插入气泡排序方法合并排序方法快速排序方法堆积排序方法

如何从链表中删除重复数据,遍历链表,并将遍历值存储在Hashtable中。 Hashtable中是否存在遍历期间当前访问的值,表示该数据是重复的。 3358www.Sina.com/:时间复杂度低;优点:使用需要额外存储空间才能在遍历过程中存储值的双环路,外环正常遍历,内缺点:不需要额外的存储空间;优点:时间复杂度高。 如何将单链表的倒数第k个元素遍历到单链表中求链表的长度n,在第二次遍历中找到n-k个元素? 从头到尾调查k个要素,如果正好是最后的节点,则表示是倒数第k个要素。 在两个指针中,上一个指针比后面的指针多前进k-1步,两个指针同时向前移动。 上一个指针循环为null,指示后面的指针是倒数第k个元素。 一种从头到尾输出单链表,从头到尾遍历链表,将节点推入堆栈,遍历结束后从堆栈顶部输出节点的方法。 递归地实现,每次访问时输出其后面的节点,输出该节点自身。 要查找单链表的中间节点,首先求解单链表中的length,然后遍历length/2的距离。 需要遍历链表两次。 两个指针同时遍历,一次遍历一步,一次遍历两步。 当第二个指针到达链表的尾部节点时,第一个指针位于链表的中间节点附近。 如果第一指针的长度为奇数,则将第二指针判断为中间节点。 偶数的情况下,第2个指针节点和下一个节点成为中间节点。 如何检测链表中是否存在循环

两个指针,一个指针一步一步,另一个指针两步。 如果两个指针相等,则链表表示是环。

如何在不知道起始指针的情况下删除指定节点如果要删除的节点是末尾节点,则无法删除,无法保证前驱节点的next为空。 如果删除的节点不是末尾节点,则与后续节点的值进行交换,删除后续节点。 判断2个链表相交,分别遍历2个链表,如果末尾节点相同,则证明相交

如何判断两个链表相交的第一个节点,判断两个链表相交。 分别计算两个链表的长度,len1和Len2(Len1Len2)首先将长链表前进(len1-len2)个步骤,然后同时遍历两个链表,当遇到同一个节点时如何选择排序,对于给定的一组记录,在第一个循环中得到的记录数最小,并将该记录与第一条记录进行交换。 接着,比较除第一记录以外的记录,并将第二个最小记录与第二个记录交换; 重复这个过程直到比较最后一条记录。

插入排序假设第一条记录是有序序列。 根据记录的大小将其插入到有序记录中,直到从第二个记录开始到最后一个记录插入有序序列。

气泡排序(从小到大排序)从第一条记录开始依次比较两个相邻记录,将最小的放在前面,重复该过程直到只剩下一条记录。

合并排序怎么办:递归地对半分离数组

然后,将分开的数据按照一定的顺序放入一个数组,直到形成一个大数组。

快速排序通过一次排序后,将原始序列分为两部分。 其中前一部分的所有记录小于后一部分的所有记录。 然后依次对前后两部分的记录进行快速排序,并递归处理,直到序列中的所有记录都按顺序排列。

希尔排序首先将待排序的数组元素划分为多个子序列,使每个子序列的元素数量相对较少,然后分别直接插入每个子序列进行排序,直到整个待排序序列“基本有序”,最后结束

如何将第一条记录视为二叉树,将其调整为大山,然后将前面的元素调整为大山,重复该过程直到剩下一个元素,即可得到有序的排列。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。