教材习题及答案 联系客服

发布时间 : 星期一 文章教材习题及答案更新完毕开始阅读f3615d5e76c66137ee0619e6

Dim find As Boolean = True For j As Integer = 0 To i - 1 If cou(j).x = k Then cou(j).c += 1 find = False Exit For End If Next

If find Then cou(i).x = k cou(i).c = 1 i += 1 End If Next

For j As Integer = 0 To i - 1

For k As Integer = i - 1 To j + 1 Step -1 If cou(k).c > cou(k - 1).c Then Dim temp As count = cou(k) cou(k) = cou(k - 1) cou(k - 1) = temp End If Next Next

Dim maxc As Integer = cou(0).c Dim m As Integer = 0 While cou(m).c = maxc

Console.WriteLine(\出现的次数是{1}\ m += 1 End While

End Sub

End Module

‘—15—

Module Module1

Sub Main()

For i As Integer = 10 To 99 Dim j As Integer

j = (i Mod 10) * 10 + i \\ 10

If IsPrime(i) And IsPrime(j) Then

Console.WriteLine(\ End If Next End Sub

Function IsPrime(ByVal n As Integer) As Boolean Dim i As Integer = 2 While (i <= n \\ i)

If n Mod i = 0 Then Return False End If i = i + 1 End While Return True End Function

End Module

第6章习题

1. 什么是数据的线性存储结构,什么是数据的非线性存储结构? 2. 简述线性表的操作。

3. 假设电话号码本由人名和一个电话号码组成,设计一个线性表,存储7个人的电话

号码簿。

4. 设栈S中存储的是字符数据,自栈底到栈顶依次为A,C,D。经过2次出栈操作

并将E压入栈,此时栈中的数据是什么?

5. 使用栈,检查表达式(2+3)*a*(3+b)/(2*(12+8)的括号是否匹配。 6. 编写程序,输入一行文本,然后使用栈逆序显示该行文本。

7. 编写程序,用栈来判断一个字符串是否为回文(即顺读和倒读都相同的字符串)。

程序忽略字符串中的大小写,空格和标点符号。

8. 使用LinkedList类实现第3题的电话簿,打印该号码簿。然后删去第2个和最后一

个节点的数据再次打印号码簿。 9. 设计一个队列,将整数3,4,5进入队列,打印该队列,将队列的前2个元素出队,

随后将11和12入队,再次打印队列。

10. 对于图6-15的循环队列,在该图的基础上,将1,2,3,4,5入队,并将2个元素

出队后,画出队列目前的状态。

第6章答案

‘---1---

数据的逻辑结构就是数据元素之间的逻辑关系。线性结构指数据元素之间存在线性关系,即最多只有一个前导和后继元素;非线性结构数据元素之间的关系为一对多或者多对多的关系。 ‘—2—

线性表可以进行的常用基本操作有以下几种: (1) 置空表:将线性表L的表长置为0。 (2) return:求出线性表L中数据元素的个数。 (3) 取表中元素:仅当1≤i≤Length(L)时,取得线性表L中的第i个元素ki(或

ki的存储位置),否则无意义。 (4) 取元素ki的直接前趋:当2≤i≤Length(L)时,返回ki的直接前趋ki-1。 (5) 取元素ki的直接后继:当1≤i≤Length(L)-1时,返回ki的直接后继ki+1。 (6) 定位:返回元素x在线性表L中的位置。若在L中有多个x,则只返回第一个x

的位置,若在L中不存在x,则返回0。 (7) 插入:在线性表L的第i个位置上插入元素x,运算结果使得线性表的长度增加1。 (8) 删除:删除线性表L的第i个位置上的元素ki,此运算的前提应是Length(L)

≠0,运算结果使得线性表的长度减1。

‘—3—

structure Phone Dim name As String Dim num As String End Structure Structure ListType

Dim PhoneList() As Phone Dim n As Integer End Structure

Dim PList As ListType ReDim PList.PhoneList(6) ‘—4— AE

‘—5— ‘参见例6-7

Module Module1

Sub Main()

Dim expression As String

Console.WriteLine(\请输入表达式\ expression = Console.ReadLine()

'声明一个栈

Dim s As New Stack(Of Char)

'初始栈,置为空栈 s.Clear()

Dim ch As Char

'循环处理表达式中的每一个字符

For i As Integer = 0 To expression.Length - 1 ch = expression(i) If ch = \

s.Push(ch) '是左括号则压栈 End If

If ch = \

If s.Count > 0 Then

s.Pop() '是右括号则弹栈 Else

'是右括号,但栈是空的,说明没有与之匹配的左括号 Console.WriteLine(\括号不匹配\ End '程序立即终止退出 End If End If Next

If s.Count = 0 Then

Console.WriteLine(\括号匹配\ Else

'栈非空,说明有左括号没有与之匹配的右括号 Console.WriteLine(\括号不匹配\ End If

End Sub

End Module ‘—6—

Module Module1

Structure Stack

Dim ch() As Char Dim top As Integer Dim bottom As Integer End Structure

Sub Main()

Const Max As Integer = 1000 Dim ReverseChar As Stack