数据结构c语言版笔试,数据结构笔试题

65d66bdc0e0bedd36ec724ea3ad3a210.png

数据结构书面测试问题,问题1,多项选择问题1.以下哪种排序方法在时空上最适合123456798(): A.快速排序B.气泡排序C.插入排序D.堆排序2. 就排序算法使用的辅助空间而言,堆排序,快速排序和合并排序之间的关系为(2.)3.A. 堆排序合并排序>快速排序D.堆排序>快速排序>合并排序E. 以上答案都是错误的. 3.以某种遍历方式执行的二叉树顺序为A,B,C,D,E,F,G. 如果二叉树的根节点为E,则可能遍历为____ ,并且相应的后序遍历为____ A. ECBADFG,BDCAFGE C. ECBADGF,EACBDGF B. ECBADFG,EFACDBG D. EACBDGF,BDCAFGE4. (常见问题类型,给定遍历树的前序遍历和中间遍历,遍历中阶和后续遍历,引入二叉树)关于图和树,以下语句正确________ A.允许树和图图的深度遍历和广度遍历的结果可能是相同的C. 二进制树是每个节点都有一个带有两个子级D的树. 二进制的前遍历和后遍历的结果树肯定不同. 在双循环链表的节点p后面插入s的操作是(5.)A. p-> next = s; s-> priou = p; p-> next-> priou = s; s-> next = p-> next; B. p-> next-> priou = s; p-> next = s; s-> priou = p; s-> next = p-> next; C. s-> priou = p; s-> next = p-> next; p-> next = s; p-> next-> priou = s; D. s-> priou = p; s-> next = p-> next; p-> next-> priou = s; p-> next = s; 2.填写空白的问题1.对链表表示的数据进行简单的选择和排序,节点的域为数据域数据,指针域为下一个;链表的第一个指针是head,链表没有头节点.

c5b9642cf2bf0cd195ff1fd956c029d4.png

selectsort(head)p = head;而(p(1)_______){q = p; r =(2)_______ while((3)______){if((4)_______)q = r; r =(5)_______; } tmp = q->数据; q->数据= p->数据; p->数据= tmp; p =(6)_______;} 2. 3.二叉树对称序列为ABCDEFG,其后的顺序为BDCAFGE,且该顺序为: _________填空: 实现二叉树排序需要递归方法,并且第二个参数s是要插入的新节点. typedef struct inode {Int数据; struct inode *左; struct inode *正确; } b_tree; b_tree * sort_b_tree(b_tree ** tree,b_tree s){if(NULL == * tree){* tree = s;}否则if(s-> data data){}否则if(s ->数据>(*树)->数据){}} 3.简短回答问题1. 2. 3. 4.数组和链表请详细说明.

f6e2d8444887c2531e97f265f9dd4303.png

什么是排序算法? 如何理解哈希表以及什么是哈希表请写以下算法的时间复杂度气泡排序方法插入排序方法堆排序方法快速排序方法5.二叉树排序方法希尔排序方法的数据结构,相关的二叉树知识c语言链表冒泡排序,开销量,为什么要使用二叉树等. 4.编程问题1. 2. 3.编写一个将整数的有序数组放入二叉树的程序. 在二进制搜索树中找到值的位置. 大于父节点的元素的二叉树在右子树中,小于父节点的元素在左子树中. 即,对二叉树进行排序并写入以插入节点或删除节点. 实现单向链表: 创建链表,插入链表,查询链表,删除特定序列号链表节点,并遍历其余的链结4.链结节点5. 6. 7. 8. 9 . 确定链表是否为删除链表的增量编程实现的编程实现列表中的重复节点仅遍历链表一次,而链表的相反顺序将两个有序链表A1,A2合并为有序链接列表A3. 已知的链表节点结构LNode {int iValue; LNode *下一个; };有序的链表,从小到大排列. 实现以下功能,以将数据插入链表并对其进行排序. 请实现以下功能: bool InsertLink(LinkList * p,int a){}; 10.编写一个链表,创建一个链表,添加一个链表节点,删除一个链表节点,找到一个链表节点,编写一个主函数,创建一个链表,在其中添加20个学生节点(节点包含名称和名称). 学生编号),然后删除其中任何一个,输出任何指定的节点,然后输出最后10个学生节点.

11. 将整数存储在test.txt文件中的顺序列表中,然后按顺序输出. 12. 找到单个链接列表的倒数第二个元素. 13.找到单个链接列表的中间元素. 14. 判断列表链表中的戒指?如何找到戒指的“起点”?如何知道戒指的长度? 15.两个单链表相交并计算交点16.使用两个堆栈来实现队列17.使用两个队列来实现堆栈18.请实现双向循环链表,包括添加,查询,插入,删除基本操作,例如null,打印输出等. 19.编写一个函数,以在两个链接列表的数据相同时删除节点. struct节点{Int数据;结构节点* front,next;}有两个链接列表,分别是结构节点* headA,* headB. 20.编写一个双向反向列表程序21.一个双向列表,交换两个连续的节点22.如何编写程序以将有序整数数组放入二叉树中23.在二叉搜索树中找到一个特定的位置的值是24. 在二叉树中c语言链表冒泡排序,大于父节点的元素在右子树中,而小于父节点的元素在左子树中. 即,对二叉树进行排序并写入以插入节点或删除节点. 25.如何判断二叉树是否是平衡的二叉树26.实现冒泡(图)27.找到字符串中最长的子字符串,要求该子字符串的所有字符都相同28.递归算法N! 29. 1 1 2 3 5 8 13 ??查找第32位数字的任何语言程序,递归实现30. 请编写一个升序排序函数31. 请编写冒泡排序,选择排序,快速排序32. 一种用于将洗牌的洗牌和存储在整数数组中的算法33. 更大的整数大于0,不带循环和局部变量,按n,2n,4n,8n的顺序递增,当值大于5000时,按指定顺序输出值.

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-238194-1.html

1. 把一个链表反向,递归,非递归都写一遍。 1.试编写3个函数实现   (1)建立一个双向链表   (2)插入一个节点   (3)删除一个节点 2.自己定义数据结构,写出程序:二叉树的前序遍历。 3.实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数。 4.下面哪种排序法对12354最快 a quick sort b.buble sort c.merge sort 5.哪种结构,平均来讲,获取一个值最快 a. binary tree b. hash table c. stack 6.一个二叉树的三种遍历方法的输出结果 7.链表按升序打印每打印完一个节点就将该节点从链表中删除 8.选择一种算法来整理出一个链接表。你为什么要选择这种方法?现在用o(n)时间来做。 9. 用一种算法在一个循环的链接表里插入一个节点,但不得穿越链接表。    10.给两个变量,如何找出一个带环单链表中是什么地方出现环的? 11.哈希表和数组的定义,区别,优缺点。 12.链接表和数组之间的区别是什么? 任选一门语言,当场定义二叉排序树数据结构,写出两个函数:初始化,删除一个节点,20分钟 13. 递归的折半查找算法[不限语言] 14. 解释一下什么是B+树,如何实现B+树的查找和插入.(用图示) 15.实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数。 13.排序方法比较 (intel) 排序方法 平均时间 最坏时间 辅助存储 直接插入排序 O(N2) O(N2) O(1) 起泡排序 O(N2) O(N2) O(1) 快速排序 O(Nlog2N) O(N2) O(Nlog2N) 简单选择排序 O(N2) O(N2) O(1) 堆排序 O(Nlog2N) O(Nlog2N) O(1) 归并排序 O(Nlog2N) O(Nlog2N) O(n) 基数排序 O(d(n+radix)) O(d(n+radix)) O(radix) 17.一个链表的操作,注意代码的健壮和安全性。要求: (1)增加一个元素; (2)获得头元素; (3)弹出头元素(获得值并删除)。 18.内排序算法 19.折半查找的复杂度,证明 20.sizeof()和strlen()的使用. 21.顺序存储结构的优点,散列法的思想是什么? 22.汉罗塔算法,不能递归... 23.一个链表的结点结构 struct Node { int data ; Node *next ; }; typedef struct Node Node ; (1)已知链表的头结点head,写一个函数把这个链表逆序 ( Intel) (2)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表 依然有序。 (3)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表 依然有序,这次要求用递归方法进行。 ( Autodesk) 24.编最优化Bubble(int *pIntArray,int L),要求:交换元素不能用临时变量,如果有序需要最优。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值