2021年经典数据结构面试题含答案

合集下载

php数据结构面试题及答案(3篇)

php数据结构面试题及答案(3篇)

第1篇一、选择题1. 问题:在PHP中,以下哪个数据结构允许你以任意顺序存储元素?- A. 数组- B. 队列- C. 栈- D. 链表答案:A. 数组解析:在PHP中,数组是一种非常灵活的数据结构,它允许你以任意顺序存储元素。

每个元素可以通过一个键来访问,这个键可以是数字或者字符串。

2. 问题:以下哪个函数可以用来检查一个PHP数组是否为关联数组?- A. is_array()- B. array_keys()- C. is_associative()- D. array_is_associative()答案:D. array_is_associative()解析:PHP 7.1.0引入了`array_is_associative()`函数,该函数可以用来检查一个数组是否为关联数组。

如果是关联数组,返回`true`;如果是索引数组,返回`false`。

3. 问题:以下哪个PHP函数可以用来检查一个值是否在数组中?- A. in_array()- B. array_key_exists()- C. isset()- D. array_search()答案:A. in_array()解析:`in_array()`函数用来检查一个值是否存在于数组中。

它接受两个参数:要查找的值和要检查的数组。

二、填空题1. 问题:在PHP中,使用`[]`可以创建一个______数组。

- 答案:索引数组2. 问题:在PHP中,使用`array()`函数可以创建一个______数组。

- 答案:关联数组3. 问题:在PHP中,要遍历一个关联数组,可以使用______循环。

- 答案:foreach三、简答题1. 问题:解释PHP中的`isset()`和`empty()`函数的区别。

答案:- `isset()`函数用于检查一个变量是否已经设置并且不为`null`。

如果变量已设置且不为`null`,则`isset()`返回`true`。

数据结构和算法面试题

数据结构和算法面试题

数据结构和算法面试题以下是一些常见的数据结构和算法面试题:1. 数组- 如何在一个已排序的数组中查找指定的元素?- 如何在一个无序的数组中查找指定的元素?- 如何找到一个数组中的最大元素?- 如何找到一个数组中的第k大元素?2. 链表- 如何反转一个链表?- 如何找到一个链表的中间节点?- 如何检测一个链表是否有环?- 如何合并两个有序链表?- 如何删除链表中的重复节点?3. 栈和队列- 如何用栈来实现队列操作?- 如何用队列来实现栈操作?- 如何实现一个最小值栈,即在常数时间内获取栈中的最小值?- 如何实现一个最小值队列,即在常数时间内获取队列中的最小值?- 如何用栈来判断一个字符串中的括号是否匹配?4. 树和图- 如何遍历二叉树(前序、中序、后序、层次遍历)?- 如何判断两个二叉树是否相同?- 如何判断一个二叉树是否为二叉搜索树?- 如何找到二叉树中的最大路径和?- 如何判断一个有向图中是否有环?5. 哈希表- 如何实现一个简单的哈希表?- 如何解决哈希冲突?- 如何找到一个数组中两个数的和为给定值的索引?- 如何找到一个数组中三个数的和为给定值的索引?6. 排序和搜索- 如何实现快速排序?- 如何实现归并排序?- 如何实现二分查找?- 如何在一个有序矩阵中查找指定的元素?7. 动态规划- 如何在一个字符串中找到一个最长的回文子串?- 如何实现一个背包问题的动态规划解法?- 如何计算一个整数的斐波那契数列?- 如何计算一个矩阵的最短路径和?以上只是一些常见的面试题,实际面试中可能会有更具体和具有挑战性的问题。

在准备面试时,建议根据自己的经验和需要,补充和练习相关的算法和数据结构。

数据结构经典面试题

数据结构经典面试题

数据结构经典面试题
1. 实现一个单链表的反转。

2. 给定两个已排序的链表,合并它们并保持有序。

3. 实现一个栈,要求具备push和pop操作,并支持获取当前栈中的最小元素。

4. 给定一个二叉树,判断它是否是平衡二叉树。

5. 实现一个队列,要求具备入队、出队和获取队列中最大元素的操作。

6. 给定一个整数数组和一个目标值,找出数组中是否存在两个元素的和等于目标值,并返回这两个元素的索引。

7. 实现一个快速排序算法。

8. 给定一个字符串,判断它是否是回文串。

9. 实现一个LRU缓存淘汰算法。

10. 给定一个有序数组和一个目标值,使用二分查找算法在数组中找到目标值的索引,并返回该索引。

数据结构面试题(含答案)

数据结构面试题(含答案)

数据结构面试题(含答案)1、栈与队列得共同特点就是(只允许在端点处插入与删除元素)、4两得用采常通栈ﻫ种存储结构就是(线性存储结构与链表存储结构)、5)D(是就得确正述叙得栈于关列下ﻫA、栈就是非线性结构B、栈就是一种树状结构C、栈具有先进先出得特征D、栈有后进先出得特征6、链表不具有得特点就是(B)A、不必事先估计存储空间B、可随机访问任一元素C、插入删除不需要移动元素D、所需空间与线性表长度成正比、7线示表表链用ﻫ性表得优点就是(便于插入与删除操作)8、在单链表中,增加头结点得目得就是(方便运算得实现)、9是就点优要主得表链环循ﻫ(从表中任一结点出发都能访问到整个链表)、01a,2a,1a(=L表性线ﻫ3,……ai,……an),下列说法正确得就是(D)A、每个元素都有一个直接前件与直接后件B、线性表中至少要有一个元素C、表中诸元素得排列顺序必须就是由小到大或由大到小D、除第一个与最后一个元素外,其余每个元素都有一个且只有一个直接前件与直接后件、11)D(址地得元单储存用可中存内求要,时构结储存式链用采若表性线ﻫA、必须就是连续得B、部分地址必须就是连续得C、一定就是不连续得D、连续不连续都可以12、线性表得顺序存储结构与线性表得链式存储结构分别就是(随机存取得存储结构、顺序存取得存储结构)13、树就是结点得集合,它得根结点数目就是(有且只有1)、41树叉二满得5为度深在ﻫ中,叶子结点得个数为(31)、51、)态形种5(有树叉61树叉二棵一设ﻫ中有3个叶子结点,有8个度为1得结二得点结个3有具ﻫ点,则该二叉树中总得结点数为(13)、71知已ﻫ二叉树后序遍历序列就是dabec,中序遍历序列就是debac,它得前序遍历序列就是(cedba)18、已知一棵二叉树前序遍历与中序遍历分别为ABDEGCFH与DBGEACHF,则该二叉树得后序遍历为(DGEBHFCA)、91是就序顺问访历遍序前得树叉二某若ﻫabdgcefh,中序遍历访问顺序就是dgbaechf,则其后序遍历得结点访问顺序就是(gdbehfca)20、数据库保护分为:安全性控制、完整性控制、并发性控制与数据得恢复。

数据结构常见面试题

数据结构常见面试题

数据结构常见面试题
以下是一些常见的数据结构面试题,这些问题可以帮助评估一个候选人对数据结构的理解和应用能力:
1.数组和链表:
•如何反转一个链表?
•如何在数组中查找一个特定的元素?
•如何合并两个有序链表或有序数组?
•如何删除链表中的重复节点?
2.栈和队列:
•如何使用栈实现一个简单的计算器?
•如何使用队列实现一个栈?
•如何判断一个字符串中的括号是否匹配?
•如何实现一个最小栈,支持常数时间的最小值查找?
3.树和图:
•如何遍历二叉树,包括前序、中序和后序遍历?
•如何判断一棵二叉树是否是平衡二叉树?
•如何实现一个图的深度优先搜索(DFS)和广度优先搜索(BFS)?
•如何判断一个有向图是否存在环?
4.哈希表和集合:
•如何实现一个哈希表?
•如何在常数时间内判断一个元素是否存在于集合中?
•如何找出数组中两个数的和为给定值的所有组合?
5.排序和搜索:
•如何实现常见的排序算法,如冒泡排序、插入排序、选择排序、快速排序等?
•如何实现二分查找算法?
•如何在一个旋转有序数组中查找指定元素?
这些只是一些常见的数据结构面试题,根据面试的要求和难度级别,可能会出现更具挑战性的问题。

在准备面试时,建议深入理解这些数据结构的原理和常见操作,并熟练编写相关算法的代码实现。

经典数据结构面试题(含答案)

经典数据结构面试题(含答案)

栈与队列得共同特点就是__________________________、栈通常采用得两种存储结构就是______________________、用链表表示线性表得优点就是_______________________8、在单链表中,增加头结点得目得就是___________________ﻫ9、循环链表得主要优点就是________________________-12、线性表得顺序存储结构与线性表得链式存储结构分别就是__________________________13、树就是结点得集合,它得根结点数目就是_____________________14、在深度为5得满二叉树中,叶子结点得个数为_______________ﻫ15、具有3个结点得二叉树有(_____________________16、设一棵二叉树中有3个叶子结点,有8个度为1得结点,则该二叉树中总得结点数为____________________17、已知二叉树后序遍历序列就是dabec,中序遍历序列就是debac,它得前序遍历序列就是____________________________18、已知一棵二叉树前序遍历与中序遍历分别为ABDEGCFH与DBGEACHF,则该二叉树得后序遍历为______________________19、若某二叉树得前序遍历访问顺序就是abdgcefh,中序遍历访问顺序就是dgbaec hf,则其后序遍历得结点访问顺序就是_______________________ﻫ20、数据库保护分为:安全性控制、完整性控制、并发性控制与数据得恢复。

在计算机中,算法就是指_______________________算法一般都可以用哪几种控制结构组合而成_____________________、算法得时间复杂度就是指______________________5、算法得空间复杂度就是指__________________________ﻫ6、算法分析得目得就是__________________________11、数据得存储结构就是指_________________________12、数据得逻辑结构就是指(_______________________________ﻫ13、根据数据结构中各数据元素之间前后件关系得复杂程度,一般将数据结构分为__________________________________16、递归算法一般需要利用_______________________实现。

经典数据结构面试题(含答案)

经典数据结构面试题(含答案)

经典数据结构面试题(含答案)1. 什么是数据结构?数据结构是计算机存储、组织数据的方式,它能够更有效地存储数据,以便于进行数据检索和修改。

2. 什么是线性表?线性表是一种基本的数据结构,由一组数据元素组成,其中每个元素都有一个前驱和一个后继,除了第一个元素没有前驱,一个元素没有后继。

3. 什么是栈?栈是一种后进先出(LIFO)的数据结构,它允许在一端进行插入和删除操作,通常称为栈顶。

4. 什么是队列?队列是一种先进先出(FIFO)的数据结构,它允许在一端进行插入操作,在另一端进行删除操作,通常称为队头和队尾。

5. 什么是链表?链表是一种由节点组成的数据结构,每个节点包含数据和指向下一个节点的指针。

链表可以分为单向链表、双向链表和循环链表。

6. 什么是树?树是一种非线性数据结构,由节点组成,每个节点有零个或多个子节点。

树可以分为二叉树、平衡树、B树等。

7. 什么是图?图是一种由节点和边组成的数据结构,节点称为顶点,边表示顶点之间的关系。

图可以分为有向图和无向图。

8. 什么是排序算法?排序算法是一种对数据进行排序的方法,常见的排序算法有冒泡排序、选择排序、插入排序、快速排序、归并排序等。

9. 什么是哈希表?哈希表是一种基于哈希函数的数据结构,它通过哈希函数将键值映射到表中一个位置来快速检索数据。

10. 什么是动态规划?动态规划是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。

经典数据结构面试题(含答案)11. 什么是二叉搜索树?二叉搜索树是一种特殊的二叉树,其中每个节点的左子树只包含小于该节点的值,右子树只包含大于该节点的值。

12. 什么是平衡二叉树?平衡二叉树是一种自平衡的二叉搜索树,它通过旋转操作来保持树的平衡,使得树的高度保持在对数级别。

13. 什么是B树?B树是一种自平衡的树数据结构,它保持数据的有序性,并允许搜索、顺序访问、插入和删除的操作都在对数时间内完成。

2021年数据仓库面试题及答案

2021年数据仓库面试题及答案

Failure is not terrible. The terrible thing is that I have never worked hard and comforted myself comfortably. Even a little regret is covered by numbness.悉心整理祝您一臂之力(WORD文档/A4打印/可编辑/页眉可删)数据仓库面试题及答案Student(S#,Sname,Sage,Sse-x) 学生表 S#:学号;Sname:学生姓名;Sage:学生年龄;Sse-x:学生性别Course(C#,Cname,T#) 课程表 C#,课程编号;Cname:课程名字;T#:教师编号SC(S#,C#,score) 成绩表 S#:学号;C#,课程编号;score:成绩Teacher(T#,Tname) 教师表 T#:教师编号; Tname:教师名字问题:1、查询“001”课程比“002”课程成绩高的所有学生的学号;select a.S# from (select s#,score from SC whereC#='001') a,(select s#,scorefrom SC where C#='002') bwhere a.scoreb.score and a.s#=b.s#;2、查询平均成绩大于60分的同学的学号和平均成绩;select S#,avg(score)from scgroup by S# having avg(score) 60;3、查询所有同学的学号、姓名、选课数、总成绩;selectStudent.S#,Student.Sname,count(SC.C#),sum(score) from Student left Outer join SC on Student.S#=SC.S# group by Student.S#,Sname4、查询姓“李”的老师的个数;select count(distinct(Tname))from Teacherwhere Tname like '李%';5、查询没学过“叶平”老师课的同学的学号、姓名;select Student.S#,Student.Snamefrom Studentwhere S# not in (select distinct( SC.S#) fromSC,Course,Teacher where SC.C#=Course.C# andTeacher.T#=Course.T# and Teacher.Tname='叶平');6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select __ from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002');7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;select S#,Snamefrom Studentwhere S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# andTeacher.Tname='叶平' group by S# havingcount(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname='叶平'));8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;Select S#,Sname from (selectStudent.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2 from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2 score;9、查询所有课程成绩小于60分的同学的学号、姓名;select S#,Snamefrom Studentwhere S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score60);10、查询没有学全所有课的同学的学号、姓名;select Student.S#,Student.Snamefrom Student,SCwhere Student.S#=SC.S# group byStudent.S#,Student.Sname having count(C#) (selectcount(C#) from Course);11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;select S#,Sname from Student,SC whereStudent.S#=SC.S# and C# in select C# from SC whereS#='1001';12、查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名;select distinct SC.S#,Snamefrom Student,SCwhere Student.S#=SC.S# and C# in (select C# from SC where S#='001');13、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩;update SC set score=(select avg(SC_2.score)from SC SC_2where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# andTeacher.Tname='叶平');14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名;select S# from SC where C# in (select C# from SC where S#='1002')group by S# having count(__)=(select count(__) from SC where S#='1002');15、删除学习“叶平”老师课的SC表记录;Delect SCfrom course ,Teacherwhere Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='叶平';16、向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“003”课程的同学学号、2、号课的平均成绩;Insert SC select S#,'002',(Select avg(score)from SC where C#='002') from Student where S# not in (Select S# from SC where C#='002');17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示:学生ID,,数据库,企业管理,英语,有效课程数,有效平均分SELECT S# as 学生ID,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='004') AS 数据库,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='001') AS 企业管理,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='006') AS 英语,COUNT(__) AS 有效课程数, AVG(t.score) AS 平均成绩FROM SC AS tGROUP BY S#ORDER BY avg(t.score)18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分SELECT L.C# As 课程ID,L.score AS 最高分,R.score AS 最低分FROM SC L ,SC AS RWHERE L.C# = R.C# andL.score = (SELECT MAX(IL.score)FROM SC AS IL,Student AS IMWHERE L.C# = IL.C# and IM.S#=IL.S#GROUP BY IL.C#)ANDR.Score = (SELECT MIN(IR.score)FROM SC AS IRWHERE R.C# = IR.C#GROUP BY IR.C#);19、按各科平均成绩从低到高和及格率的百分数从高到低顺序SELECT t.C# AS 课程号,max(ame)AS 课程名,isnull(AVG(score),0) AS 平均成绩,100 __ SUM(CASE WHEN isnull(score,0)=60 THEN 1 ELSE 0 END)/COUNT(__) AS 及格百分数FROM SC T,Coursewhere t.C#=course.C#GROUP BY t.C#ORDER BY 100 __ SUM(CASE WHEN isnull(score,0)=60 THEN 1 ELSE 0 END)/COUNT(__) DESC20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OOUML (003),数据库(004)SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分,100 __ SUM(CASE WHEN C# = '001' AND score = 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '001' THEN 1 ELSE 0 END) AS 企业管理及格百分数,SUM(CASE WHEN C# = '002' THEN score ELSE 0END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) AS 马克思平均分,100 __ SUM(CASE WHEN C# = '002' AND score = 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '002' THEN 1 ELSE 0 END) AS 马克思及格百分数,SUM(CASE WHEN C# = '003' THEN score ELSE 0END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) AS UML平均分,100 __ SUM(CASE WHEN C# = '003' AND score = 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '003' THEN 1 ELSE 0 END) AS UML及格百分数,SUM(CASE WHEN C# = '004' THEN score ELSE 0END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) AS 数据库平均分,100 __ SUM(CASE WHEN C# = '004' AND score = 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '004' THEN 1 ELSE 0 END) AS 数据库及格百分数FROM SC21、查询不同老师所教不同课程平均分从高到低显示SELECT max(Z.T#) AS 教师ID,MAX(Z.Tname) AS 教师姓名,C.C# AS 课程ID,MAX(ame) AS 课程名称,AVG(Score) AS 平均成绩FROM SC AS T,Course AS C ,Teacher AS Zwhere T.C#=C.C# and C.T#=Z.T#GROUP BY C.C#ORDER BY AVG(Score) DESC22、查询如下课程成绩第 3 名到第 6 名的学生成绩单:企业管理(001),马克思(002),UML (003),数据库(004)[学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩SELECT DISTINCT top 3SC.S# As 学生学号,Student.Sname AS 学生姓名 ,T1.score AS 企业管理,T2.score AS 马克思,T3.score AS UML,T4.score AS 数据库,ISNULL(T1.score,0) + ISNULL(T2.score,0) +ISNULL(T3.score,0) + ISNULL(T4.score,0) as 总分FROM Student,SC LEFT JOIN SC AS T1ON SC.S# = T1.S# AND T1.C# = '001'LEFT JOIN SC AS T2ON SC.S# = T2.S# AND T2.C# = '002'LEFT JOIN SC AS T3ON SC.S# = T3.S# AND T3.C# = '003'LEFT JOIN SC AS T4ON SC.S# = T4.S# AND T4.C# = '004'WHERE student.S#=SC.S# andISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) NOT IN(SELECTDISTINCTTOP 15 WITH TIESISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) FROM scLEFT JOIN sc AS T1ON sc.S# = T1.S# AND T1.C# = 'k1'LEFT JOIN sc AS T2ON sc.S# = T2.S# AND T2.C# = 'k2'LEFT JOIN sc AS T3ON sc.S# = T3.S# AND T3.C# = 'k3'LEFT JOIN sc AS T4ON sc.S# = T4.S# AND T4.C# = 'k4'ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) DESC);23、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ 60]SELECT SC.C# as 课程ID, Cname as 课程名称,SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS [100 - 85],SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS [85 - 70],SUM(CASE WHEN score BETWEEN 60 AND 70 THEN 1 ELSE 0 END) AS [70 - 60],SUM(CASE WHEN score 60 THEN 1 ELSE 0 END) AS [60 -] FROM SC,Coursewhere SC.C#=Course.C#GROUP BY SC.C#,Cname;24、查询学生平均成绩及其名次SELECT 1+(SELECT COUNT( distinct 平均成绩)FROM (SELECT S#,AVG(score) AS 平均成绩FROM SCGROUP BY S#) AS T1WHERE 平均成绩 T2.平均成绩) as 名次,S# as 学生学号,平均成绩FROM (SELECT S#,AVG(score) 平均成绩FROM SCGROUP BY S#) AS T2ORDER BY 平均成绩 desc;25、查询各科成绩前三名的记录:(不考虑成绩并列情况)SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 3 scoreFROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#;26、查询每门课程被选修的学生数select c#,count(S#) from sc group by C#;27、查询出只选修了一门课程的全部学生的学号和姓名select SC.S#,Student.Sname,count(C#) AS 选课数from SC ,Studentwhere SC.S#=Student.S# group by SC.S# ,Student.Sname having count(C#)=1;28、查询男生、女生人数Select count(Sse-x) as 男生人数 from Student group by Sse-x having Sse-x='男';Select count(Sse-x) as 女生人数 from Student group by Sse-x having Sse-x='女';29、查询姓“张”的学生名单SELECT Sname FROM Student WHERE Sname like '张%';30、查询同名同性学生名单,并统计同名人数select Sname,count(__) from Student group by Sname having count(__)1;;31、1981年出生的学生名单(注:Student表中Sage列的类型是datetime)select Sname, CONVERT(char (11),DATEPART(year,Sage)) as agefrom studentwhere CONVERT(char(11),DATEPART(year,Sage))='1981';32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列Select C#,Avg(score) from SC group by C# order by Avg(score),C# DESC ;33、查询平均成绩大于85的所有学生的学号、姓名和平均成绩select Sname,SC.S# ,avg(score)from Student,SCwhere Student.S#=SC.S# group by SC.S#,Sname having avg(score)85;34、查询课程名称为“数据库”,且分数低于60的学生姓名和分数Select Sname,isnull(score,0)from Student,SC,Coursewhere SC.S#=Student.S# and SC.C#=Course.C# and ame='数据库'and score 60;35、查询所有学生的选课情况;SELECT SC.S#,SC.C#,Sname,CnameFROM SC,Student,Coursewhere SC.S#=Student.S# and SC.C#=Course.C# ;36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数;SELECT distinctstudent.S#,student.Sname,SC.C#,SC.scoreFROM student,ScWHERE SC.score=70 AND SC.S#=student.S#;37、查询不及格的课程,并按课程号从大到小排列select c# from sc where scor e 60 order by C# ;38、查询课程编号为003且课程成绩在80分以上的学生的学号和姓名;select SC.S#,Student.Sname from SC,Student where SC.S#=Student.S# and Score80 and C#='003';39、求选了课程的学生人数select count(__) from sc;40、查询选修“叶平”老师所授课程的学生中,成绩最高的学生姓名及其成绩select Student.Sname,scorefrom Student,SC,Course C,Teacherwhere Student.S#=SC.S# and SC.C#=C.C# andC.T#=Teacher.T# and Teacher.Tname='叶平' andSC.score=(select max(score)from SC where C#=C.C# );41、查询各个课程及相应的选修人数select count(__) from sc group by C#;42、查询不同课程成绩相同的学生的学号、课程号、学生成绩select distinct A.S#,B.score from SC A ,SC B whereA.Score=B.Score and A.C# B.C# ;43、查询每门功成绩最好的前两名SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 2 scoreFROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#;44、统计每门课程的学生选修人数(超过10人的课程才统计)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

栈和队列共同特点是__________________________.栈普通采用两种存储构造是______________________.用链表表达线性表长处是_______________________8.在单链表中,增长头结点目是___________________9.循环链表重要长处是________________________-12.线性表顺序存储构造和线性表链式存储构造分别是__________________________13.树是结点集合,它根结点数目是_____________________14.在深度为5满二叉树中,叶子结点个数为_______________15.具备3个结点二叉树有(_____________________16.设一棵二叉树中有3个叶子结点,有8个度为1结点,则该二叉树中总结点数为____________________17.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它前序遍历序列是____________________________18.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树后序遍历为______________________19.若某二叉树前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历结点访问顺序是_______________________20.数据库保护分为:安全性控制、完整性控制、并发性控制和数据恢复。

在计算机中,算法是指_______________________算法普通都可以用哪几种控制构造组合而成_____________________.算法时间复杂度是指______________________5. 算法空间复杂度是指__________________________6. 算法分析目是__________________________11. 数据存储构造是指_________________________12. 数据逻辑构造是指(_______________________________13. 依照数据构造中各数据元素之间先后件关系复杂限度,普通将数据构造分为__________________________________16. 递归算法普通需要运用_______________________实现。

28. 非空循环单链表head尾结点(由p所指向),满足(_____________________29.与单向链表相比,双向链表长处之一是____________________________--34. 在一棵二叉树上第8层结点数最多是____________35. 在深度为5满二叉树中,叶子结点个数为____________\36. 在深度为5满二叉树中,共有________________个结点37.设一棵完全二叉树共有699个结点,则在该二叉树中叶子结点数为_________________阐明:完全二叉树总结点数为N,若N为奇数,则叶子结点数为(N+1)/2;若N为偶数,则叶子结点数为N/2。

39.已知二叉树后序遍历序列是dabec,中序遍历序列debac,它前序遍历序列是(cedba)40. 已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树后序遍历为(DGEBHFCA)41.若某二叉树前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历结点访问顺序是(gdbehfca)42. 串长度是(串中所含字符个数)43.设有两个串p和q,求q在p中初次浮现位置运算称做(模式匹配)44. N个顶点连通图中边条数至少为(N-1)45.N个顶点强连通图边数至少有(N)46.对长度为n线性表进行顺序查找,在最坏状况下所需要比较次数为(N)47. 最简朴互换排序办法是(冒泡排序)48.假设线性表长度为n,则在最坏状况下,冒泡排序需要比较次数为(n(n-1)/2)49. 在待排序元素序列基本有序前提下,效率最高排序办法是(冒泡排序)50. 在最坏状况下,下列顺序办法中时间复杂度最小是(堆排序)51. 希尔排序法属于(插入类排序)52. 堆排序法属于(选取类排序)53. 在下列几种排序办法中,规定内存量最大是(归并排序)54. 已知数据表A中每个元素距其最后位置不远,为节约时间,应采用(直接插入排序)55. 算法基本特性是可行性、拟定性、有穷性和拥有足够情报。

一种算法普通由两种基本要素构成:一是对数据对象运算和操作,二是算法控制构造。

1. 算法复杂度重要涉及时间复杂度和空间复杂度。

2. 实现算法所需存储单元多少和算法工作量大小分别称为算法空间复杂度和时间复杂度。

3.所谓数据解决是指对数据集合中各元素以各种方式进行运算,涉及插入、删除、查找、更改等运算,也涉及对数据元素进行分析。

4.数据构造是指互有关于联数据元素集合。

5.数据构造分为逻辑构造与存储构造,线性链表属于存储构造。

6.数据构造涉及数据逻辑构造和数据存储构造。

7. 数据构造涉及数据逻辑构造、数据存储构造以及对数据操作运算。

8.数据元素之间任何关系都可以用前趋和后继关系来描述。

9.数据逻辑构造有线性构造和非线性构造两大类。

10.惯用存储构造有顺序、链接、索引等存储构造。

11. 顺序存储办法是把逻辑上相邻结点存储在物理位置相邻存储单元中。

12. 栈基本运算有三种:入栈、退栈与读栈顶元素。

13. 队列重要有两种基本运算:入队运算与退队运算。

14. 在实际应用中,带链栈可以用来收集计算机存储空间中所有空闲存储结点,这种带链栈称为可运用栈。

15.栈和队列普通采用存储构造是链式存储和顺序存储。

16.当线性表采用顺序存储构造实现存储时,其重要特点是逻辑构造中相邻结点在存储构造中仍相邻。

17. 循环队列重要有两种基本运算:入队运算与退队运算。

每进行一次入队运算,队尾指针就进1 。

18.当循环队列非空且队尾指针等于对头指针时,阐明循环队列已满,不能进行入队运算。

这种状况称为上溢。

19.当循环队列为空时,不能进行退队运算,这种状况称为下溢。

20. 在一种容量为25循环队列中,若头指针front=16,尾指针rear=9,则该循环队列中共有18 个元素。

注:当rear<front时,元素个数=总容量-(front-rear);当rear>front时,元素个数=rear-front。

5.下列关于栈论述对的是(D)A.栈是非线性构造B.栈是一种树状构造C.栈具备先进先出特性D.栈有后进先出特性6.链表不具备特点是(B)A.不必事先预计存储空间 B.可随机访问任一元素C.插入删除不需要移动元素D.所需空间与线性表长度成正比10.线性表L=(a1,a2,a3,……ai,……an),下列说法对的是(D)A.每个元素均有一种直接前件和直接后件B.线性表中至少要有一种元素C.表中诸元素排列顺序必要是由小到大或由大到小D.除第一种和最后一种元素外,别的每个元素均有一种且只有一种直接前件和直接后件11.线性表若采用链式存储构造时,规定内存中可用存储单元地址(D)A.必要是持续B.某些地址必要是持续C.一定是不持续D.持续不持续都可以7. 下列论述对的是(C)A.算法执行效率与数据存储构造无关B.算法空间复杂度是指算法程序中指令(或语句)条数C.算法有穷性是指算法必要能在执行有限个环节之后终结D.算法时间复杂度是指执行算法程序所需要时间8.数据构造作为计算机一门学科,重要研究数据逻辑构造、对各种数据构造进行运算,以及(数据存储构造)9. 数据构造中,与所使用计算机无关是数据(C)A.存储构造B.物理构造C.逻辑构造D.物理和存储构造10. 下列论述中,错误是(B)A.数据存储构造与数据解决效率密切有关B.数据存储构造与数据解决效率无关C.数据存储构造在计算机中所占空间不一定是持续D.一种数据逻辑构造可以有各种存储构造14. 下列数据构造具备记忆功能是(C)A.队列B.循环队列C.栈D.顺序表15. 下列数据构造中,按先进后出原则组织数据是(B)A.线性链表B.栈C.循环链表D.顺序表17. 下列关于栈论述中对的是(D)A.在栈中只能插入数据B.在栈中只能删除数据C.栈是先进先出线性表D.栈是先进后出线性表20. 由两个栈共享一种存储空间好处是(节约存储空间,减少上溢发生机率)21. 应用程序在执行过程中,需要通过打印机输出数据时,普通先形成一种打印作业,将其存储在硬盘中一种指定(队列)中,当打印机空闲时,就会按先来先服务方式从中取出待打印作业进行打印。

22.下列关于队列论述中对的是(C)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出线性表D.队列是先进后出线性表23.下列论述中,对的是(D)A.线性链表中各元素在存储空间中位置必要是持续B.线性链表中表头元素一定存储在其她元素前面C.线性链表中各元素在存储空间中位置不一定是持续,但表头元素一定存储在其她元素前面D.线性链表中各元素在存储空间中位置不一定是持续,且各元素存储顺序也是任意24.下列论述中对的是(A)A.线性表是线性构造B.栈与队列是非线性构造C.线性链表是非线性构造D.二叉树是线性构造25. 线性表L=(a1,a2,a3,……ai,……an),下列说法对的是(D)A.每个元素均有一种直接前件和直接后件B.线性表中至少要有一种元素C.表中诸元素排列顺序必要是由小到大或由大到小D.除第一种元素和最后一种元素外,别的每个元素均有一种且只有一种直接前件和直接后件26.线性表若采用链式存储构造时,规定内存中可用存储单元地址(持续不持续都可以)27. 链表不具备特点是(B)A.不必事先预计存储空间B.可随机访问任一元素C.插入删除不需要移动元素D.所需空间与线性表长度成正比30. 在(D)中,只要指出表中任何一种结点位置,就可以从它出发依次访问到表中其她所有结点。

A.线性单链表B.双向链表C.线性链表D.循环链表31. 如下数据构造属于非线性数据构造是(C)A.队列B.线性表C.二叉树D.栈38. 设有下列二叉树,对此二叉树中序遍历成果是(B)A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA1.判断链表与否存在环型链表问题:判断一种链表与否存在环,例如下面这个链表就存在一种环:例如N1->N2->N3->N4->N5->N2就是一种有环链表,环开始结点是N5这里有一种比较简朴解法。

设立两个指针p1,p2。

每次循环p1向前走一步,p2向前走两步。

相关文档
最新文档