搜档网
当前位置:搜档网 › 《数据结构Java版》习题解答

《数据结构Java版》习题解答

《数据结构Java版》习题解答
《数据结构Java版》习题解答

第0章Java程序设计基础 (1)

【习0.1】实验0.1 哥德巴赫猜想。 (1)

【习0.2】实验0.2 杨辉三角形。 (1)

【习0.3】实验0.3 金额的中文大写形式。 (1)

【习0.4】实验0.4 下标和相等的数字方阵。 (1)

【习0.5】实验0.5 找出一个二维数组的鞍点 (2)

【习0.6】实验0.6 复数类。 (2)

【习0.7】实验0.8 图形接口与实现图形接口的类 (2)

第1章绪论 (3)

【习1.1】实验1.1 判断数组元素是否已按升序排序。 (3)

【习1.2】实验1.3 用递归算法求两个整数的最大公因数。 (3)

第2章线性表 (5)

【习2.1】习2-5 图2.19的数据结构声明。 (5)

【习2.2】习2-6 如果在遍历单链表时,将p=p.next语句写成p.next=p,结果会怎样? (5)

【习2.3】实验2.2 由指定数组中的多个对象构造单链表。 (5)

【习2.4】实验2.2 单链表的查找、包含、删除操作详见8.2.1。 (5)

【习2.5】实验2.2 单链表的替换操作。 (6)

【习2.6】实验2.2 首尾相接地连接两条单链表。 (6)

【习2.7】实验2.2 复制单链表。 (6)

【习2.8】实验2.2 单链表构造、复制、比较等操作的递归方法。 (7)

【习2.9】建立按升序排序的单链表(不带头结点)。 (8)

【习2.10】实验2.6 带头结点的循环双链表类,实现线性表接口。 (10)

【习2.11】实验2.5 建立按升序排序的循环双链表。 (14)

第3章栈和队列 (17)

【习3.1】习3-5 栈和队列有何异同? (17)

【习3.2】能否将栈声明为继承线性表,入栈方法是add(0,e),出栈方法是remove(0)?为什么?

(17)

【习3.3】能否用一个线性表作为栈的成员变量,入栈方法是add(0,e),出栈方法是remove(0)?

为什么? (17)

【习3.4】能否将队列声明为继承线性表,入队方法是add(e),出队方法是remove(0)?为什么?

(17)

第4章串 (18)

【习4.1】实验4.6 找出两个字符串中所有共同的字符。 (18)

【习4.2】习4-9(1) 已知目标串为"abbaba"、模式串为"aba",画出其KMP算法的匹配过程,并给出比较次数。 (18)

【习4.3】习4-9(2) 已知target="ababaab"、pattern="aab",求模式串的next数组,画出其KMP 算法的匹配过程,并给出比较次数。 (18)

第5章数组和广义表 (20)

【习5.1】求一个矩阵的转置矩阵。 (20)

第6章树和二叉树 (21)

【习6.1】画出3个结点的各种形态的树和二叉树。 (21)

【习6.2】找出分别满足下面条件的所有二叉树。 (21)

【习6.3】输出叶子结点。 (21)

【习6.4】求一棵二叉树的叶子结点个数。 (22)

【习6.5】判断两棵二叉树是否相等。 (22)

【习6.6】复制一棵二叉树。 (23)

【习6.7】二叉树的替换操作。 (23)

【习6.8】后根次序遍历中序线索二叉树。 (24)

第7章图 (25)

第8章查找 (26)

【习8.1】实验8.1 顺序表的查找、删除、替换、比较操作。 (26)

【习8.2】实验8.2 单链表的全部替换操作。 (28)

【习8.3】实验8.2 单链表的全部删除操作。 (28)

【习8.4】折半查找的递归算法。 (29)

【习8.5】二叉排序树查找的递归算法。 (29)

【习8.6】二叉排序树插入结点的非递归算法。 (30)

【习8.7】判断一棵二叉树是否为二叉排序树。 (31)

第9章排序 (32)

【习9.1】判断一个数据序列是否为最小堆序列。 (32)

【习9.2】归并两条排序的单链表。 (32)

【习9.3】说明二叉排序树与堆的差别。 (34)

图0.1 下标和相等的数字方阵算法描述 (1)

图2.1 p.next=p将改变结点间的链接关系 (5)

图4.1 目标串"abbaba"和模式串"aba"的KMP算法模式匹配过程 (18)

图4.2 目标串"ababaab"和模式串"aab"的KMP算法模式匹配过程 (19)

图6.1 3个结点树和二叉树的形态 (21)

图6.2 单支二叉树 (21)

图9.2 归并两条排序的单链表 (33)

表4.1 模式串"aab"的next数组 (19)

第0章 Java程序设计基础

【习0.1】实验0.1 哥德巴赫猜想。

【习0.2】实验0.2 杨辉三角形。

【习0.3】实验0.3 金额的中文大写形式。

【习0.4】实验0.4 下标和相等的数字方阵。

输出下列方阵(当n=4时)。

1 2 6 7 或 1 3 4 10

3 5 8 13 2 5 9 11

4 9 12 14 6 8 12 15

10 11 15 16 7 13 14 16

采用二维数组实现。二维数组中,每一条斜线上各元素下标和相等,如图0.1所示。

图0.1 下标和相等的数字方阵算法描述

程序如下。

public class Upmat

{

public static void main(String args[])

{

int n=4; //阶数

int[][] mat = new int[n][n];

int k=1; //k是自然数,递增变化

boolean up = true; //方向向上

for (int sum=0; sum

{

if (up)

for (int i=sum; i>=0; i--)

mat[i][sum-i] = k++; //k先赋值后自加

else

for (int i=0; i<=sum; i++)

mat[i][sum-i] = k++;

up=!up; //方向求反

}

for (int sum=n; sum<2*n-1; sum++) //右下三角

{

if (up)

for (int j=sum-n+1; j

mat[sum-j][j] = k++;

else

for (int j=n-1; j>sum-n; j--)

mat[sum-j][j] = k++;

up=!up;

}

for (int i=0; i

{

for (int j=0; j

System.out.print(" "+mat[i][j]);

System.out.println();

}

}

}

【习0.5】实验0.5 找出一个二维数组的鞍点

【习0.6】实验0.6 复数类。

【习0.7】实验0.8 图形接口与实现图形接口的类

第1章绪论

【习1.1】实验1.1 判断数组元素是否已按升序排序。

程序见例1.4的SortedArray.java。

public static boolean isSorted(int[] table) //判断整数数组是否已按升序排序{ //若已排序返回true,否则返回false if (table==null)

return false;

for (int i=0; i

if (table[i]>table[i+1])

return false;

return true;

}

public static boolean isSorted(Comparable[] table) //判断对象数组是否已按升序排序{ //若已排序返回true,否则返回false if (table==null)

return false;

for (int i=0; i

if (table[i].compareTo(table[i+1])>0)

return false;

return true;

}

【习1.2】实验1.3 用递归算法求两个整数的最大公因数。

public class Gcd

{

public static int gcd(int a, int b) //返回a,b的最大公因数,递归方法

{

if(b==0)

return a;

if(a<0)

return gcd(-a, b);

if(b<0)

return gcd(a, -b);

return gcd(b, a%b);

}

public static void main(String args[])

{

int a=12, b=18, c=24;

System.out.println("gcd("+a+","+b+","+c+")="+gcd(gcd(a,b),c)); //获得3个整数最大公因数}

}

第2章线性表

【习2.1】习2-5 图2.19的数据结构声明。

table数组元素为单链表,声明如下:

SinglyLinkedList table[]

【习2.2】习2-6 如果在遍历单链表时,将p=p.next语句写成p.next=p,结果会怎样?使p.next指向p结点自己,改变了结点间的链接关系,丢失后继结点,如图2.1所示。

p

图2.1 p.next=p将改变结点间的链接关系

【习2.3】实验2.2 由指定数组中的多个对象构造单链表。

在SinglyLinkedList单链表类中,增加构造方法如下。

public SinglyLinkedList(E[] element) //由指定数组中的多个对象构造单链表

{

this.head = null;

if (element!=null && element.length>0)

{

this.head = new Node(element[0]);

Node rear=this.head;

int i=1;

while (i

{

rear.next = new Node(element[i++]);

rear = rear.next;

}

}

}

【习2.4】实验2.2 单链表的查找、包含、删除操作详见8.2.1。

单链表的以下查找、包含、删除等操作方法详见8.2.1顺序查找。

public Node search(E element, Node start) //从单链表结点start开始顺序查找指定对象public Node search(E element) //若查找到指定对象,则返回结点,否则返回null public boolean contain(E element) //以查找结果判断单链表是否包含指定对象

public boolean remove(E element) //移去首次出现的指定对象

【习2.5】实验2.2 单链表的替换操作。

在SinglyLinkedList单链表类中,增加替换操作方法如下。

public boolean replace(Object obj, E element) //将元素值为obj的结点值替换为element { //若替换成功返回true,否则返回false,O(n) if (obj==null || element==null)

return false;

Node p=this.head;

while (p!=null)

{

if (obj.equals(p.data))

{

p.data = element;

return true;

}

p = p.next;

}

return false;

}

【习2.6】实验2.2 首尾相接地连接两条单链表。

在SinglyLinkedList单链表类中,增加替换操作方法如下。

public void concat(SinglyLinkedList list) //将指定单链表list链接在当前单链表之后

{

if (this.head==null)

this.head = list.head;

else

{

Node p=this.head;

while (p.next!=null)

p = p.next;

p.next = list.head;

}

}

【习2.7】实验2.2 复制单链表。

在SinglyLinkedList单链表类中,增加构造方法如下。

public SinglyLinkedList(SinglyLinkedList list) //以单链表list构造新的单链表

{ //复制单链表

this.head = null;

if (list!=null && list.head!=null)

{

this.head = new Node(list.head.data);

Node p = list.head.next;

Node rear = this.head;

while (p!=null)

{

rear.next = new Node(p.data);

rear = rear.next;

p = p.next;

}

}

}

【习2.8】实验2.2 单链表构造、复制、比较等操作的递归方法。

由指定数组中的多个对象构造单链表的操作也可设计为以下的递归方法:public SinglyLinkedList(E[] element) //由指定数组中的多个对象构造单链表{

this.head = null;

if (element!=null)

this.head = create(element,0);

}

private Node create(E[] element, int i) //由指定数组构造单链表,递归方法{

Node p=null;

if (i

{

p = new Node(element[i]);

p.next = create(element, i+1);

}

return p;

}

单链表的复制操作也可设计为以下的递归方法:

public SinglyLinkedList(SinglyLinkedList list) //以单链表list构造新的单链表{

this.head = copy(list.head);

}

private Node copy(Node p) //复制单链表,递归方法

{

Node q=null;

if (p!=null)

{

q = new Node(p.data);

q.next = copy(p.next);

}

return q;

}

比较两条单链表是否相等的操作也可设计为以下的递归方法:

public boolean equals(Object obj) //比较两条单链表是否相等

{

if (obj == this)

return true;

if (obj instanceof SinglyLinkedList)

{

SinglyLinkedList list = (SinglyLinkedList)obj;

return equals(this.head, list.head);

}

return false;

}

private boolean equals(Node p, Node q) //比较两条单链表是否相等,递归方法{

if (p==null && q==null)

return true;

if (p!=null && q!=null)

return p.data.equals(q.data) && equals(p.next, q.next);

return false;

}

【习2.9】建立按升序排序的单链表(不带头结点)。

采用直接插入排序算法将一个结点插入到已排序的单链表中。

import dataStructure.linearList.Node;

import dataStructure.linearList.SinglyLinkedList; //不带头结点的单链表类

public class SortedSinglyLinkedList extends SinglyLinkedList

{

public SortedSinglyLinkedList()

{

super();

}

public boolean add(E element) //根据指定对象的大小插入在合适位置{

if (element==null || !(element instanceof Comparable))

return false; //不能插入null或非Comparable对象

Comparable cmp = (Comparable)element;

if (this.head==null || https://www.sodocs.net/doc/1e15062730.html,pareTo(this.head.data)<=0)

this.head = new Node(element,this.head); //头插入

else

{

Node front=null, p=this.head;

while (p!=null && https://www.sodocs.net/doc/1e15062730.html,pareTo(p.data)>0)

{

front = p; //front是p的前驱结点

p = p.next;

}

front.next = new Node(element, p); //中间/尾插入

}

return true;

}

public static void main(String args[])

{

SortedSinglyLinkedList list = new SortedSinglyLinkedList();

int n=10;

System.out.print("insert:");

for (int i=0; i

{

int k = (int) (Math.random()*100); //产生随机数

if (list.add(new Integer(k)))

System.out.print(k+" ");

}

System.out.println("\nlist: "+list.toString());

}

}

程序多次运行结果如下:

insert:22 48 50 9 71 71 19 67 50 80

list: (9, 19, 22, 48, 50, 50, 67, 71, 71, 80)

insert:42 33 52 89 13 11 50 29 78 34

list: (11, 13, 29, 33, 34, 42, 50, 52, 78, 89)

insert:69 16 99 0 20 68 14 73 90 76

list1: (0, 14, 16, 20, 68, 69, 73, 76, 90, 99)

【习2.10】实验2.6 带头结点的循环双链表类,实现线性表接口。

package dataStructure.linearList;

import dataStructure.linearList.DLinkNode; //导入双链表结点类

import dataStructure.linearList.LList; //导入线性表接口

public class CHDoublyLinkedList implements LList //带头结点的循环双链表类{

protected DLinkNode head; //头指针

public CHDoublyLinkedList() //构造空链表

{

this.head = new DLinkNode(); //创建头结点,值为null

this.head.prev = head;

this.head.next = head;

}

public boolean isEmpty() //判断双链表是否为空

{

return head.next==head;

}

//以下算法同循环单链表,与单链表的差别在于,循环条件不同

public int length() //返回双链表长度

{

int i=0;

DLinkNode p=this.head.next; //此句与单链表不同

while (p!=head) //循环条件与单链表不同

{

i++;

p = p.next;

}

return i;

}

public E get(int index) //返回序号为index的对象{

if (index>=0)

{

int j=0;

DLinkNode p=this.head.next;

while (p!=head && j

{

j++;

p=p.next;

}

if (p!=head)

return (E)p.data;

}

return null;

}

public E set(int index, E element) //设置index序号对象为element {

if (index>=0 && element!=null)

{

int j=0;

DLinkNode p=this.head.next;

while (p!=head && j

{

j++;

p=p.next;

}

if (p!=head)

{

E old = (E)p.data;

p.data = element;

return old;

}

}

return null;

}

public String toString()

{

String str="(";

DLinkNode p = this.head.next;

while (p!=head)

{

str += p.data.toString();

p = p.next;

if (p!=head)

str += ", ";

}

return str+")";

}

//双链表的插入、删除算法与单链表不同

public boolean add(int index, E element) //插入element对象,插入后对象序号为index { //若操作成功返回true,O(n) if (element==null)

return false; //不能添加空对象(null)

int j=0;

DLinkNode front = this.head;

while (front.next!=head && j

j++;

front = front.next;

}

DLinkNode q = new DLinkNode(element, front, front.next); //插入在front结点之后front.next.prev = q;

front.next = q;

return true;

}

public boolean add(E element) //在单链表最后添加对象,O(1)

{

if (element==null)

return false; //不能添加空对象(null)

DLinkNode q = new DLinkNode(element, head.prev, head);

head.prev.next = q; //插入在头结点之前,相当于尾插入

head.prev = q;

return true;

}

public E remove(int index) //移除指定位置的对象,O(n)

{ //返回被移除的原对象,指定位置序号错误时返回null

E old = null;

int j=0;

DLinkNode p=this.head.next;

while (p!=head && j

{

j++;

p = p.next;

}

if (p!=head)

{

old = (E)p.data; //操作成功,返回原对象

p.prev.next = p.next; //删除p结点自己

p.next.prev = p.prev;

}

return old;

}

public void clear() //清空线性表

{

this.head.prev = head;

this.head.next = head;

}

//以上实现LList接口

public static void main(String args[])

{

int i=0;

CHDoublyLinkedList list = new CHDoublyLinkedList();

System.out.println("删除第"+i+"个结点"+list.remove(0));

System.out.println(list.toString());

for (i=5; i>=0; i--)

list.add(0, new String((char)('A'+i)+""));

for (i=0; i<6; i++)

list.add(new String((char)('A'+i)+""));

// list.add(i, new String((char)('A'+i)+""));

System.out.println(list.toString());

System.out.println("删除第"+i+"个结点"+list.remove(i));

System.out.println(list.toString());

}

}

程序运行结果如下:

删除第0个结点null

()

(A, B, C, D, E, F, A, B, C, D, E, F)

删除第6个结点A

(A, B, C, D, E, F, B, C, D, E, F)

【习2.11】实验2.5 建立按升序排序的循环双链表。

package dataStructure.linearList;

import dataStructure.linearList.DLinkNode;

import dataStructure.linearList.CHDoublyLinkedList; //循环双链表类

public class SortedCHDLinkedList extends CHDoublyLinkedList

{ //按升序排序的循环双链表类public SortedCHDLinkedList()

{

super();

}

public boolean add(E element) //根据指定对象的大小插入在合适位置

{ //若操作成功返回true,O(n) if (element==null || !(element instanceof Comparable))

return false; //不能插入null或非Comparable对象

Comparable cmp = (Comparable)element;

if (this.head.prev!=head && https://www.sodocs.net/doc/1e15062730.html,pareTo(this.head.prev.data)>0)

{ //非空双链表,插入在最后,O(1) DLinkNode q = new DLinkNode(element, head.prev, head);

head.prev.next = q; //插入在头结点之前,相当于尾插入

head.prev = q;

return true;

}

DLinkNode p=this.head.next;

while (p!=head && https://www.sodocs.net/doc/1e15062730.html,pareTo(p.data)>0) //寻找插入位置

p = p.next;

DLinkNode q = new DLinkNode(element, p.prev, p); //插入在p结点之前p.prev.next = q;

p.prev = q;

return true;

}

public boolean remove(E element) //删除指定对象

{ //若操作成功返回true,O(n) if (element==null || !(element instanceof Comparable))

return false;

Comparable cmp = (Comparable)element;

DLinkNode p=this.head.next;

while (p!=head && https://www.sodocs.net/doc/1e15062730.html,pareTo(p.data)>0) //定位到待删除的结点p = p.next;

if (p!=head)

{

p.prev.next = p.next; //删除p结点自己

p.next.prev = p.prev;

return true;

}

return false; //未找到指定结点,删除不成功}

public static void main(String args[])

{

SortedCHDLinkedList list = new SortedCHDLinkedList();

int n=10;

System.out.print("insert:");

for (int i=0; i

{

int k = (int) (Math.random()*100);

if (list.add(new Integer(k)))

System.out.print(k+" ");

}

System.out.println("\nlist: "+list.toString());

}

}

程序运行结果如下:

insert:53 1 92 84 24 3 2 73 99 99

list: (1, 2, 3, 24, 53, 73, 84, 92, 99, 99)

第3章栈和队列

【习3.1】习3-5 栈和队列有何异同?

栈和队列都是特殊的线性表,两者的区别在于:栈的插入和删除操作只允许在线性表的一端进行,而队列的插入和删除操作则分别在线性表的两端进行。

【习3.2】能否将栈声明为继承线性表,入栈方法是add(0,e),出栈方法是remove(0)?为什么?

不行。栈不支持中间插入和删除操作。

【习3.3】能否用一个线性表作为栈的成员变量,入栈方法是add(0,e),出栈方法是remove(0)?为什么?

不行。

【习3.4】能否将队列声明为继承线性表,入队方法是add(e),出队方法是remove(0)?为什么?

不行。队列不支持中间插入和删除操作。

运筹学试题及答案

运筹学A卷) 一、单项选择题(从下列各题四个备选答案中选出一个正确答案,答案选错或未选者,该题不得分。每小题1分,共10分) 1.线性规划具有唯一最优解就是指 A.最优表中存在常数项为零 B.最优表中非基变量检验数全部非零 C.最优表中存在非基变量的检验数为零 D.可行解集合有界 2.设线性规划的约束条件为 则基本可行解为 A.(0, 0, 4, 3) B.(3, 4, 0, 0) C.(2, 0, 1, 0) D.(3, 0, 4, 0) 3.则 A.无可行解 B.有唯一最优解medn C.有多重最优解 D.有无界解 4.互为对偶的两个线性规划, 对任意可行解X 与Y,存在关系 A.Z > W B.Z = W C.Z≥W D.Z≤W 5.有6 个产地4个销地的平衡运输问题模型具有特征 A.有10个变量24个约束

B.有24个变量10个约束 C.有24个变量9个约束 D.有9个基变量10个非基变量 6、下例错误的说法就是 A.标准型的目标函数就是求最大值 B.标准型的目标函数就是求最小值 C.标准型的常数项非正 D.标准型的变量一定要非负 7、m+n-1个变量构成一组基变量的充要条件就是 A.m+n-1个变量恰好构成一个闭回路 B.m+n-1个变量不包含任何闭回路 C.m+n-1个变量中部分变量构成一个闭回路 D.m+n-1个变量对应的系数列向量线性相关 8.互为对偶的两个线性规划问题的解存在关系 A.原问题无可行解,对偶问题也无可行解 B.对偶问题有可行解,原问题可能无可行解 C.若最优解存在,则最优解相同 D.一个问题无可行解,则另一个问题具有无界解 9、有m个产地n个销地的平衡运输问题模型具有特征 A.有mn个变量m+n个约束…m+n-1个基变量 B.有m+n个变量mn个约束 C.有mn个变量m+n-1约束 D.有m+n-1个基变量,mn-m-n-1个非基变量 10.要求不超过第一目标值、恰好完成第二目标值,目标函数就是

高鸿业《宏观经济学》课后习题答案第十七章习题答案

第十七章总需求—总供给模型 1. 总需求曲线的理论来源是什么为什么在IS—LM模型中,由P(价格)自由变动,即可得到总需求曲线 解答:(1)总需求是经济社会对产品和劳务的需求总量,这一需求总量通常以产出水平来表示。一个经济社会的总需求包括消费需求、投资需求、政府购买和国外需求。总需求量受多种因素的影响,其中价格水平是一个重要的因素。在宏观经济学中,为了说明价格水平对总需求量的影响,引入了总需求曲线的概念,即总需求量与价格水平之间关系的几何表示。在凯恩斯主义的总需求理论中,总需求曲线的理论来源主要由产品市场均衡理论和货币市场均衡理论来反映。 (2)在IS—LM模型中,一般价格水平被假定为一个常数(参数)。在价格水平固定不变且货币供给为已知的情况下,IS曲线和LM曲线的交点决定均衡的收入(产量)水平。现用图17—1来说明怎样根据IS—LM图形来推导总需求曲线。 图17—1分上下两个部分。上图为IS—LM图。下图表示价格水平和需求总量之间的关系,即总需求曲线。当价格P的数值为P1时,此时的LM曲线LM(P1)与IS曲线相交于E1点,E1点所表示的国民收入和利率分别为y1和r1。将P1和y1标在下图中便得到总需求曲线上的一点D1。 现在假设P由P1下降到P2。由于P的下降,LM曲线移动到LM(P2)的位置,它与IS曲线的交点为E2点。E2点所表示的国民收入和利率分别为y2和r2。对应于上图中的点E2,又可在下图中找到D2点。按照同样的程序,随着P的变化,LM曲线和IS曲线可以有许多交点,每一个交点都代表着一个特定的y和P。于是就有许多P与y的组合,从而构成了下图中一系列的点。把这些点连在一起所得到的曲线AD便是总需求曲线。 从以上关于总需求曲线的推导中可以看到,总需求曲线表示社会的需求总量和价格水平之间的反向关系。即总需求曲线是向右下方倾斜的。向右下方倾斜的总需求曲线表示,价格水平越高,需求总量越小;价格水平越低,需求总量越大。 图17—1 2.为什么进行宏观调控的财政政策和货币政策一般被称为需求管理的政策 解答:财政政策是指政府变动税收和支出,以便影响总需求,进而影响就业和国民收入的政策。货币政策是指货币当局即中央银行通过银行体系变动货币供应量来调节总需求的政策。无论财政政策还是货币政策,都是通过影响利率、消费和投资进而影响总需求,使就业和国民收入得到调节的。通过对总需求的调节来调控宏观经济,所以财政政策和货币政策被称为需求管理政策。 3.总供给曲线的理论来源是什么

数据结构习题解答

第一章概论自测题答案 一、填空题 1. 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科。 2. 数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。 3. 数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。 4. 数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。 5. 线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。 6.在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有1个后续结点。 7. 在树形结构中,树根结点没有前驱结点,其余每个结点有且只有1个前驱结点;叶子结

点没有后续结点,其余每个结点的后续结点数可以任意多个。 8. 在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。 9.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。 10. 数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。 11. 一个算法的效率可分为时间效率和空间效率。 二、单项选择题 (B)1. 非线性结构是数据元素之间存在一种: A)一对多关系B)多对多关系 C)多对一关系D)一对一关系 ( C )2. 数据结构中,与所使用的计算机无关的是数据的结构; A) 存储B) 物理 C) 逻辑D) 物理和存储 (C)3. 算法分析的目的是:

A) 找出数据结构的合理性 B) 研究算法中的输入和输出的关系 C) 分析算法的效率以求改进 D) 分析算法的易懂性和文档性 (A)4. 算法分析的两个主要方面是: A) 空间复杂性和时间复杂性 B) 正确性和简明性 C) 可读性和文档性 D) 数据复杂性和程序复杂性 ( C )5. 计算机算法指的是: A) 计算方法 B) 排序方法 C) 解决问题的有限运算序列 D) 调度方法 (B)6. 计算机算法必须具备输入、输出和等5个特性。 A) 可行性、可移植性和可扩充性 B) 可行性、确定性和有穷性 C) 确定性、有穷性和稳定性 D) 易读性、稳定性和安全性

严蔚敏版数据结构课后习题答案-完整版

第1章绪论 1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。 解:数据是对客观事物的符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 数据对象是性质相同的数据元素的集合,是数据的一个子集。 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 存储结构是数据结构在计算机中的表示。 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。 抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。是对一般数据类型的扩展。 1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。 解:抽象数据类型包含一般数据类型的概念,但含义比一般数据类型更广、更抽象。一般数据类型由具体语言系统内部定义,直接提供给编程者定义用户数据,因此称它们为预定义数据类型。抽象数据

类型通常由编程者定义,包括定义它所使用的数据和在这些数据上所进行的操作。在定义抽象数据类型中的数据部分和操作部分时,要求只定义到数据的逻辑结构和操作说明,不考虑数据的存储结构和操作的具体实现,这样抽象层次更高,更能为其他用户提供良好的使用接口。 1.3 设有数据结构(D,R),其中 {}4,3,2,1d d d d D =,{}r R =,()()(){}4,3,3,2,2,1d d d d d d r = 试按图论中图的画法惯例画出其逻辑结构图。 解: 1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。 解: ADT Complex{ 数据对象:D={r,i|r,i 为实数} 数据关系:R={} 基本操作: InitComplex(&C,re,im) 操作结果:构造一个复数C ,其实部和虚部分别为re 和im DestroyCmoplex(&C)

运筹学典型考试试题及答案

二、计算题(60分) 1、已知线性规划(20分) MaxZ=3X1+4X2 X1+X2≤5 2X1+4X2≤12 3X1+2X2≤8 X1,X2≥0 其最优解为: 基变量X1X2X3X4X5 X33/2 0 0 1 -1/8 -1/4 X25/2 0 1 0 3/8 -1/4 X1 1 1 0 0 -1/4 1/2 σj 0 0 0 -3/4 -1/2 1)写出该线性规划的对偶问题。 2)若C2从4变成5,最优解是否会发生改变,为什么? 3)若b2的量从12上升到15,最优解是否会发生变化,为什么? 4)如果增加一种产品X6,其P6=(2,3,1)T,C6=4该产品是否应该投产?为什么?解: 1)对偶问题为 Minw=5y1+12y2+8y3 y1+2y2+3y3≥3 y1+4y2+2y3≥4 y1,y2≥0 2)当C2从4变成5时, σ4=-9/8 σ5=-1/4 由于非基变量的检验数仍然都是小于0的,所以最优解不变。 3)当若b2的量从12上升到15 X=9/8 29/8 1/4 由于基变量的值仍然都是大于0的,所以最优解的基变量不会发生变化。 4)如果增加一种新的产品,则 P6’=(11/8,7/8,-1/4)T σ6=3/8>0 所以对最优解有影响,该种产品应该生产 2、已知运输问题的调运和运价表如下,求最优调运方案和最小总费用。(共15分)。 B1B2B3产量销地 产地 A1 5 9 2 15 A2 3 1 7 11 A3 6 2 8 20 销量18 12 16 解:初始解为

计算检验数 由于存在非基变量的检验数小于0,所以不是最优解,需调整 调整为: 重新计算检验数 所有的检验数都大于等于0,所以得到最优解 3、某公司要把4个有关能源工程项目承包给4个互不相关的外商投标者,规定每个承包商只能且必须承包一个项目,试在总费用最小的条件下确定各个项目的承包者,总费用为多少?各承包商对工程的报价如表2所示: (15分) 项目 投标者 A B C D 甲 15 18 21 24 乙 19 23 22 18 丙 26 17 16 19 丁 19 21 23 17 答最优解为: X= 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 总费用为50 4. 考虑如下线性规划问题(24分) B 1 B 2 B 3 产量/t A 1 15 15 A 2 11 11 A 3 18 1 1 20 销量/t 18 12 16 B 1 B 2 B 3 产量/t A 1 5 13 0 15 A 2 -2 0 0 11 A 3 0 0 20 销量/t 18 12 16 B 1 B 2 B 3 产量/t A 1 15 15 A 2 11 11 A 3 7 12 1 20 销量/t 18 12 16 B 1 B 2 B 3 产量/t A 1 5 13 0 15 A 2 0 2 2 11 A 3 0 0 0 20 销量/t 18 12 16

数据结构课后习题及答案

填空题(10 * 1’ = 10’) 一、概念题 .当对一个线性表经常进行的是插入和删除操作时,采用链式存储结构为宜。 .当对一个线性表经常进行的是存取操作,而很少进行插入和删除操作时,最好采用顺序存储结构。 .带头结点的单链表L中只有一个元素结点的条件是L->Next->Next==Null。 .循环队列的引入,目的是为了克服假溢出。 .长度为0的字符串称为空串。 .组成串的数据元素只能是字符。 .设T和P是两个给定的串,在T中寻找等于P的子串的过程称为模式匹配,又称P为模式。 .为了实现图的广度优先搜索,除一个标志数组标志已访问的图的结点外,还需要队列存放被访问的结点实现遍历。 .广义表的深度是广义表中括号的重数 .有向图G可拓扑排序的判别条件是有无回路。 .若要求一个稠密图的最小生成树,最好用Prim算法求解。 . 直接定址法法构造的哈希函数肯定不会发生冲突。 .排序算法所花费的时间,通常用在数据的比较和交换两大操作。 .通常从正确性﹑可读性﹑健壮性﹑时空效率等几个方面评价算法的(包括程序)的质量。 .对于给定的n元素,可以构造出的逻辑结构有集合关系﹑线性关系树形关系﹑图状关系四种。 .存储结构主要有顺序存储﹑链式存储﹑索引存储﹑散列存储四种。 .抽象数据类型的定义仅取决于它的一组逻辑特性,而与存储结构无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部使用。 .一个算法具有五大特性:有穷性﹑确定性﹑可行性,有零个或多个输入﹑有一个或多个输入。 .在双向链表结构中,若要求在p指针所指的结点之前插入指针为s所指的结点,则需执行下列语句:s->prior= p->prior; s->next= p; p->prior- next= s; p->prior= s;。 .在单链表中设置头结点的作用是不管单链表是否为空表,头结点的指针均不空,并使得对单链表的操作(如插入和删除)在各种情况下统一。 .队列是限制在表的一端进行插入和在另一端进行删除的线性表,其运算遵循先进先出原则。 .栈是限定尽在表位进行插入或删除操作的线性表。 .在链式队列中,判定只有一个结点的条件是(Q->rear==Q->front)&&(Q->rear!=NULL)。 .已知链队列的头尾指针分别是f和r,则将x入队的操作序列是node *p=(node *)malloc(node); p->next=x; p->next=NULL; if(r) {r->next=p; r=p;} else {r=p; f=p;}。 .循环队列的满与空的条件是(rear+1)%MAXSIZE==fornt和(front=-1&&rear+1==MAXSIZE)。 .串是一种特殊的线性表,其特殊性表现在数据元素都是由字符组成。 .字符串存储密度是串值所占存储位和实际分配位的比值,在字符串的链式存储结构中其结点大小是可变的。 .所谓稀疏矩阵指的是矩阵中非零元素远远小于元素总数,则称该矩阵为矩阵中非零元素远远小于元素总数,则称该矩阵为稀疏矩阵。 .一维数组的逻辑结构是线性结构,存储结构是顺序存储结构;对二维或多维数组,分别按行优先和列优先两种不同的存储方式。 .在有向图的邻接矩阵表示中,计算第i个顶点入度的方法是求邻接矩阵中第i列非0元素的个数。 网中,结点表示活动,边表示活动之间的优先关系,AOE网中,结点表示事件,边表示活动。 .按排序过程中依据不同原则对内部排序方法进行分类,主要有选择排序﹑交换排序﹑插入排序归并排序等4类。 .在堆排序、快速排序和归并排序中若只从排序结果的稳定性考虑,则应选择归并排序方法;若只从平均情况下排序最快考虑,则应选择快速排序方法;若只从最坏情况下排序最快且要节省类存考虑,则应选择堆排序方法。 .直接插入排序用监视哨的作用是存当前要的插入记录,可又省去查找插入位置时对是否出界的判断。 .设表中元素的初始状态是按键值递增的,则直接插入排序最省时间,快速排序最费时间。 .下列程序判断字符串s是否对称,对称则返回1,否则返回0;如?(“abba”)返回1,?(”abab”)返回0. Int f (char*s) { Int i=0,j=0; 求串长*/

数据结构习题及答案——严蔚敏_课后习题答案 精品

第一章绪论 选择题 1.组成数据的基本单位是() (A)数据项(B)数据类型(C)数据元素(D)数据变量 2.数据结构是研究数据的()以及它们之间的相互关系。 (A)理想结构,物理结构(B)理想结构,抽象结构 (C)物理结构,逻辑结构(D)抽象结构,逻辑结构 3.在数据结构中,从逻辑上可以把数据结构分成() (A)动态结构和静态结构(B)紧凑结构和非紧凑结构 (C)线性结构和非线性结构(D)内部结构和外部结构 4.数据结构是一门研究非数值计算的程序设计问题中计算机的(①)以及它们之间的(②)和运算等的学科。 ①(A)数据元素(B)计算方法(C)逻辑存储(D)数据映像 ②(A)结构(B)关系(C)运算(D)算法 5.算法分析的目的是()。 (A)找出数据结构的合理性(B)研究算法中的输入和输出的关系 (C)分析算法的效率以求改进(D)分析算法的易懂性和文档性 6.计算机算法指的是(①),它必须具备输入、输出和(②)等5个特性。 ①(A)计算方法(B)排序方法(C)解决问题的有限运算序列(D)调度方法 ②(A)可执行性、可移植性和可扩充性(B)可行性、确定性和有穷性 (C)确定性、有穷性和稳定性(D)易读性、稳定性和安全性 二、判断题 1.数据的机内表示称为数据的存储结构。() 2.算法就是程序。() 3.数据元素是数据的最小单位。() 4.算法的五个特性为:有穷性、输入、输出、完成性和确定性。() 5.算法的时间复杂度取决于问题的规模和待处理数据的初态。() 三、填空题 1.数据逻辑结构包括________、________、_________ 和_________四种类型,其中树形结构和图形结构合称为_____。 2.在线性结构中,第一个结点____前驱结点,其余每个结点有且只有______个前驱结点;最后一个结点______后续结点,其余每个结点有且只有_______个后续结点。 3.在树形结构中,树根结点没有_______结点,其余每个结点有且只有_______个前驱结点;叶子结点没有________结点,其余每个结点的后续结点可以_________。 4.在图形结构中,每个结点的前驱结点数和后续结点数可以_________。 5.线性结构中元素之间存在________关系,树形结构中元素之间存在______关系,图形结构中元素之间存在_______关系。 6.算法的五个重要特性是_______、_______、______、_______、_______。 7.数据结构的三要素是指______、_______和________。 8.链式存储结构与顺序存储结构相比较,主要优点是________________________________。 9.设有一批数据元素,为了最快的存储某元素,数据结构宜用_________结构,为了方便插入一个元素,数据结构宜用____________结构。 四、算法分析题 1.求下列算法段的语句频度及时间复杂度参考答案: 选择题1. C 2.C 3. C 4. A、B 5. C 6.C、B

运筹学试题及答案汇总

3)若问题中 x2 列的系数变为(3,2)T,问最优解是否有变化; 4)c2 由 1 变为 2,是否影响最优解,如有影响,将新的解求出。 Cj CB 0 0 Cj-Zj 0 4 Cj-Zj 3 4 Cj-Zj 最优解为 X1=1/3,X3=7/5,Z=33/5 2对偶问题为Minw=9y1+8y2 6y1+3y2≥3 3y1+4y2≥1 5y1+5y2≥4 y1,y2≥0 对偶问题最优解为 y1=1/5,y2=3/5 3 若问题中 x2 列的系数变为(3,2)T 则P2’=(1/3,1/5σ2=-4/5<0 所以对最优解没有影响 4)c2 由 1 变为2 σ2=-1<0 所以对最优解没有影响 7. 求如图所示的网络的最大流和最小截集(割集,每弧旁的数字是(cij , fij )。(10 分) V1 (9,5 (4,4 V3 (6,3 T 3 XB X4 X5 b 9 8 X1 6 3 3 X4 X3 1 8/5 3 3/5 3/5 X1 X3 1/3 7/5 1 0 0 1 X2 3 4 1 -1 4/5 -11/5 -1/3 1 - 2 4 X 3 5 5 4 0 1 0 0 1 0 0 X4 1 0 0 1 0 0 1/3 -1/ 5 -1/5 0 X5 0 1 0 -1 1/5 -4/5 -1/3 2/5 -3/5 VS (3,1 (3,0 (4,1 Vt (5,3 V2 解: (5,4 (7,5 V4 V1 (9,7 (4,4 V3 (6,4 (3,2 Vs (5,4 (4,0 Vt (7,7 6/9 V2 最大流=11 (5,5 V4 8. 某厂Ⅰ、Ⅱ、Ⅲ三种产品分别经过 A、B、C 三种设备加工。已知生产单位各种产品所需的设备台时,设备的现有加工能力及每件产品的预期利润见表:ⅠⅡⅢ设备能力(台.h A 1 1 1 100 B 10 4 5 600 C 2 2 6 300 单

第17章课后题答案

第17章 光的衍射答案 17-2. 衍射的本质是什么?衍射和干涉有什么联系和区别? 答:光波的衍射现象是光波在传播过程中经过障碍物边缘或孔隙时发生的展衍现象,其实质是由被障碍物或孔隙的边缘限制的波振面上各点发出的子波相互叠加而产生。而干涉则是由同频率、同方向、相位差恒定的两束光波的叠加而成。 17-7. 光栅衍射和单缝衍射有何区别?为何光栅衍射的明条纹特别明亮而暗区很宽? 答:光栅衍射是多光束干涉和单缝衍射的总效果。其明条纹主要取决于多光束干涉,光强与狭缝数成正比,所以明纹很亮;又因为相邻明条纹间有个暗条纹,而且一般较宽,所以实际上在两条明条纹之间形成一片黑暗背景。 17-8. 试指出当衍射光栅常数为下述三种情况时,哪些级次的衍射明条纹缺级?(1)a+b=2a; (2)a+b=3a; (3)a+b=4a. 答:当(1)a+b=2a 时,±2,±4,±6…2k…(k=±1,±2,…)级缺级; 当(2)a+b=3a 时,±3,±6,±9…3k…(k=±1,±2,…)级缺级; 当(3)a+b=4a 时,±4,±8,±12…4k…(k=±1,±2,…)级缺级。 17-9. 一单色平行光垂直照射一单缝,若其第三级明条纹位置正好与600nm 的单色平行光的第二级明条纹位置相重合,求前一种单色光的波长。 解:单缝衍射的公式为: 2)12(sin λ θ+=k a 当nm 600=λ时,k=2, ' λλ=时,k=3, 当其第三级明条纹位置正好与600nm 的单色平行光的第二级明条纹位置相重合时,θ相同,所以有: 2 )132(2600)122(sin ' λθ+?=+?=a 由上式可以解得 nm 6.428'=λ 17-10. 单缝宽0.10mm ,透镜焦距为50cm ,用5000=λ埃的绿光垂直照射单缝,求:(1)位于透镜焦平面处的屏幕上中央明条纹的宽度和半角宽度各为多少? (2)若把此装置浸入水中(),中央明条纹的半角宽度又为多少? 解:中央明纹的宽度为f na x λ 2=?,半角宽度为na λ θ1sin -= (1)在空气中,1=n ,所以有 3310100.55.01010.010500022---?=????==?f na x λ m 3310 1 1100.51010.0105000sin sin -----?=??==na λθrad

数据结构习题及参考答案 .

习题1 一、单项选择题 1.数据结构是指()。 A.数据元素的组织形式 B.数据类型 C.数据存储结构 D.数据定义 2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为()。 A.存储结构 B.逻辑结构 C.链式存储结构 D.顺序存储结构 3.树形结构是数据元素之间存在一种()。 A.一对一关系 B.多对多关系 C.多对一关系 D.一对多关系 4.设语句x++的时间是单位时间,则以下语句的时间复杂度为()。 for(i=1; i<=n; i++) for(j=i; j<=n; j++) x++; A.O(1) B.O(2n) C.O(n) D.O(3n) 5.算法分析的目的是(1),算法分析的两个主要方面是(2)。 (1) A.找出数据结构的合理性 B.研究算法中的输入和输出关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 (2) A.空间复杂度和时间复杂度 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 6.计算机算法指的是(1),它具备输入,输出和(2)等五个特性。 (1) A.计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法 (2) A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性,稳定性和安全性 7.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要()。 A.低 B.高 C.相同 D.不好说 8.数据结构作为一门独立的课程出现是在()年。 A.1946 B.1953 C.1964 D.1968 9.数据结构只是研究数据的逻辑结构和物理结构,这种观点()。 A.正确 B.错误 C.前半句对,后半句错 D.前半句错,后半句对

数据结构课后参考答案

单元练习1 一.判断题(下列各题,正确的请在前面的括号打√;错误的打╳) (√)(1)数据的逻辑结构与数据元素本身的容和形式无关。 (√)(2)一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。 (ㄨ)(3)数据元素是数据的最小单位。 (ㄨ)(4)数据的逻辑结构和数据的存储结构是相同的。 (ㄨ)(5)程序和算法原则上没有区别,所以在讨论数据结构时可以通用。 (√)(6)从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。 (√)(7)数据的存储结构是数据的逻辑结构的存储映像。 (√)(8)数据的物理结构是指数据在计算机实际的存储形式。 (ㄨ)(9)数据的逻辑结构是依赖于计算机的。 (√)(10)算法是对解题方法和步骤的描述。 二.填空题 (1)数据有逻辑结构和存储结构两种结构。 (2)数据逻辑结构除了集合以外,还包括:线性结构、树形结构和图形结构。(3)数据结构按逻辑结构可分为两大类,它们是线性结构和非线性结构。(4)树形结构和图形结构合称为非线性结构。 (5)在树形结构中,除了树根结点以外,其余每个结点只有 1 个前趋结点。(6)在图形结构中,每个结点的前趋结点数和后续结点数可以任意多个。(7)数据的存储结构又叫物理结构。 (8)数据的存储结构形式包括:顺序存储、链式存储、索引存储和散列存储。(9)线性结构中的元素之间存在一对一的关系。 (10)树形结构结构中的元素之间存在一对多的关系, (11)图形结构的元素之间存在多对多的关系。 (12)数据结构主要研究数据的逻辑结构、存储结构和算法(或运算)三个方面的容。 (13)数据结构被定义为(D,R),其中D是数据的有限集合,R是D上的关系的有限集合。 (14)算法是一个有穷指令的集合。 (15)算法效率的度量可以分为事先估算法和事后统计法。 (16)一个算法的时间复杂性是算法输入规模的函数。 (17)算法的空间复杂度是指该算法所耗费的存储空间,它是该算法求解问题规模n 的函数。 (18)若一个算法中的语句频度之和为T(n)=6n+3nlog2n,则算法的时间复杂度为O (nlog2n)。

国际贸易实务课后答案详解 第十七章 索赔

第十七章索赔 一、思考题 1.简述在国际货物买卖中争议产生的原因。 答:国际货物买卖中,争议的产生往往是因买卖双方的各自的权利、义务问题而引起的,甚至导致发生仲裁、诉讼等情况。买卖双方发生争议的原因有很多,主要可归结为以下三种情况: (1)卖方不履行或不完全履行合同规定的义务。例如,不交付货物或虽然交货但所交货物的品质、数量、包装等不符合合同规定。 (2)买方不履行或不完全履行合同规定的义务。例如,不能按照合同规定派船接货、指定承运人、支付货款或开出信用证,无理拒收货物等。 (3)合同中所订条款欠明确。例如,“立即装运”、“即期装运”,在国际贸易中无统一解释,买卖双方对此理解不一致或从本身的利益出发各执一词。 2.各国法律对于违约行为的区分方法有哪些区别?对于不同违约行为的违约责任又是如何规定的? 答:(1)我国《合同法》的相关规定 我国《合同法》第8条规定:“依法成立的合同,对当事人具有法律约束力。当事人应当按照约定履行自己的义务,不得擅自变更或者解除合同。”第107条规定:“当事人一方不履行合同义务或者履行合同义务不符合约定的,应当承担继续履行、采取补救措施或者赔偿损失等违约责任。” 我国《合同法》规定:当事人一方迟延履行合同义务或者有其他违约行为致使不能实现合同目的,对方当事人可以解除合同;当事人一方迟延履行主要债务,经催告后在合同期间内仍未履行的,对方当事人可以解除合同。《合同法》又规定,合同解除后,尚未履行的,终止履行;已经履行的,根据履行情况和合同性质,当事人可以要求恢复原状、采取其他补救措施,并有权要求赔偿损失。 (2)英国法律的相关规定 英国的法律规定,当事人一方“违反要件”,受损害一方除可要求损害赔偿外,还有权解除合同;当事人一方“违反担保”或“违反随附条件”,受损害一方有权请求违约的一方给予损害赔偿,但不能解除合同;当事人一方“违反中间性条款或无名条款”,违约方应承担的责任须视违约的性质及其后果是否严重而定。 (3)美国法律的相关规定 美国法律规定,一方当事人违约,以致使另一方无法取得该交易的主要利益,则是“重大违约”。在此情况下,受损害的一方有权解除合同,并要求损害赔偿。如果一方违约,情况较为轻微,并未影响对方在该交易中取得的主要利益,则为“轻微违约”,受损害的一方只能要求损害赔偿,而无权解除合同。 (4)《联合国国际货物销售合同公约》的相关规定 按《联合国国际货物销售合同公约》规定,一方当事人违反合同的结果,如使另一方当事人蒙受损害,以至于实际上剥夺了他根据合同规定有权期待得到的东西,即为根本违反合同。若一方违反合同构成根本违反合同时,受损害的一方就可以宣告合同无效,同时有权向违约方提出损害赔偿的要求。如违约的情况尚未达到根本违反合同的程度,则受损害方只能要求损害赔偿而不能宣告合同无效。 3.何谓索赔期限?为什么在国际货物买卖合同的索赔条款中通常应规定索赔期限? 答:(1)索赔期限的含义

数据结构习题及参考答案

习题1 一、单项选择题 A1.数据结构是指()。 A.数据元素的组织形式 B.数据类型 C.数据存储结构 D.数据定义 C2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为()。 A.存储结构 B.逻辑结构 C.链式存储结构 D.顺序存储结构 D3.树形结构是数据元素之间存在一种()。 A.一对一关系 B.多对多关系 C.多对一关系 D.一对多关系 B4.设语句x++的时间是单位时间,则以下语句的时间复杂度为()。 for(i=1; i<=n; i++) for(j=i; j<=n; j++) x++; A.O(1) B.O(2n) C.O(n) D.O(3n) CA5.算法分析的目的是(1),算法分析的两个主要方面是(2)。 (1) A.找出数据结构的合理性 B.研究算法中的输入和输出关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 (2) A.空间复杂度和时间复杂度 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 6.计算机算法指的是(1),它具备输入,输出和(2)等五个特性。 (1) A.计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法 (2) A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性,稳定性和安全性 7.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要()。 A.低 B.高 C.相同 D.不好说 8.数据结构作为一门独立的课程出现是在()年。 A.1946 B.1953 C.1964 D.1968 9.数据结构只是研究数据的逻辑结构和物理结构,这种观点()。 A.正确 B.错误 C.前半句对,后半句错 D.前半句错,后半句对

运筹学例题解析

(一)线性规划建模与求解 B.样题:活力公司准备在5小时内生产甲、乙两种产品。甲、乙两种产品每生产1 单位分别消耗2小时、1小时。又根据市场需求信息,乙产品的产量应该至少是甲产品产量的3倍。已知甲、乙两种产品每销售1单位的利润分别为3百元和1百元。请问:在5小时内,甲、乙两种产品各生产多少单位,才能够使得总销售利润最大 要求:1、建立该问题的线性规划模型。 2、用图解法求出最优解和最大销售利润值,并写出解的判断依据。如果不存在最优解,也请说明理由。 解:1、(1)设定决策变量: 设甲、乙两种产品分别生产x 1 、x 2 单位 。 (2)目标函数: max z=2 x 1+x 2 (3)约束条件如下:1221 12 25..3,0+≤??≥??≥?x x s t x x x x 2、该问题中约束条件、目标函数、可行域和顶点见图1所示,其中可行域用阴影部分标记,不等式约束条件及变量约束要标出成立的方向,目标函数只须画出其中一条等值线, 结论:本题解的情形是: 无穷多最优解 ,理由: 目标函数等值线 z=2 x 1+x 2与约 束条件2 x 1+x 2≤5的边界平行 。甲、乙两种产品的最优产量分别为 (5,0)或(1,3)单位;最大销售利润值等于 5 百元。 (二)图论问题的建模与求解样题 A.正考样题(最短路问题的建模与求解,清华运筹学教材编写组第三版267-268页例 13)某企业使用一台设备,每年年初,企业都要做出决定,如果继续使用旧的,要付维修费;若购买一台新设备,要付购买费。但是变卖旧设备可以获得残值收入,连续使用1年、2年、3年、4年以上卖掉的设备残值分别为8万元、6万元、3万元和0万元。试制定一个5年的更新计划,使总支出最少。已知设备在各年的购买费与维修费如表2所示。要求:(1)建立某种图论模型;(2)求出最少总支出金额。

新人教版九年级物理第十七章课后习题答案

第十七章第一节《电流与电压和电阻的关系》 在探究电阻一定时电流与电压关系的实验中,小明得到的实验数据如下表所示。 (1)为分析电流与电压的定量关系,请你在图17.1-2 的方格中建立有关坐标轴并制定其标度,把表中的数据 在坐标系中描点。 (2)小英说,从图中可以看出,这些数据中有一组是 明显错误的,跟其他数据的规律完全不同,可能是读取 这组数据时粗心所引起的,分析时需要把它剔除掉。这 是哪组数据? 2. 在电阻一定时探究电流与电压关系的实验中,小凯把 定值电阻、电流表、电压表、滑动变阻器、开关和电源 连接成了图17.1-3 所示的电路,正准备闭合开关时,旁 边的小兰急忙拦住他,说接线错了。 请你检查一下电路,错在哪里?小兰发现只要改接一根导线就可以,请把接错的那一根导线找出来,打上“×”,再画线把它改到正确的位置上。 第一节《电流与电压和电阻的关系》课后习题答案 1.(1)图略 (2)“1.2V 0.40A”这组数据跟其他数据的规律完全不同,需要剔除。 2.如图所示 ×

第十七章第二节《欧姆定律》 1. 一个电熨斗的电阻是80 Ω,接在220 V 的电压上,流过它的电流是多少? 2. 一个定值电阻的阻值是10 Ω,使用时流过的电流是200 mA ,加在这个定值电 阻两端的电压是多大? 3. 某小灯泡工作时两端的电压是2.5 V ,用电流表测得此时的电流是300 mA ,此 灯泡工作时的电阻是多少? 4. 某同学认为:“由I = U/R 变形可得R = U/I 。这就表明,导体的电阻R 跟它两端的电压成正比,跟电流成反比。”这种说法对吗?为什么? 第二节《欧姆定律》课后习题答案 1. 2.75A 2. 2V 3. 8.3Ω 解析:1.根据公式I=R U 2.根据公式U=IR 3.根据公式R = U/I 4.这种说法不对,因为导体的电阻是导体本身的一种性质,它只与导体的材料、长度、横截面积有关,还受温度影响,而与导体两端的电压及通过导体的电流大小无关,公式R = U/I 只是一个电阻的计算式,通过此公式可以求出导体的电阻,但不能决定导体电阻的大小,当导体不接入电路时,其阻值不会改变。 第十七章第三节《电阻的测量》 1. 一个小灯泡上标着“ 2.2 V 0.25 A ”,表明这个小灯泡工作时的电 阻是8.8 Ω。图17.3-2 是一位同学为检 验小灯泡的标称电阻是否准确而连接的 实验线路。他的连接有三个错误。请你 指出这三个错误分别错在哪里。应怎样 改成正确的连接? 2. 已知流过一只电阻为242 Ω 的灯泡的电流是0.91 A 。如果在灯泡两端再并联一个电阻为165 Ω 的电烙铁,并联电路的总电流变为多大? 3. 图17.3-3 是用伏安法测量某未知电阻的电路图。 (1)根据电路图将图17.3-4 所示的实物图连接起来; (2)读出图17.3-5 所示电流表和电压表的示数; (3)算出被测电阻本次的测量值。

数据结构各章习题及答案

数据结构习题及解答 第1章 概述 【例1-1】分析以下程序段的时间复杂度。 for(i=0;i

得:T(n)=O( n 2 log) 【例1-4】有如下递归函数fact(n),分析其时间复杂度。 fact(int n) { if(n<=1) return(1);① else return(n*fact(n-1));② } 解:设fact(n)的运行时间函数是T(n)。该函数中语句①的运行时间是O(1),语句②的运行时间是T(n-1)+ O(1),其中O(1)为常量运行时间。 由此可得fact(n)的时间复杂度为O(n)。 习题1 一、单项选择题 1.数据结构是指(1. A )。 A.数据元素的组织形式 B.数据类型 C.数据存储结构 D.数据定义 2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为(2. C )。 A.存储结构 B.逻辑结构 C.链式存储结构 D.顺序存储结构 3.树形结构是数据元素之间存在一种(3. D )。 A.一对一关系 B.多对多关系 C.多对一关系 D.一对多关系 4.设语句x++的时间是单位时间,则以下语句的时间复杂度为(4. B)。 for(i=1; i<=n; i++) for(j=i; j<=n; j++) x++; A.O(1) B.O(2 n) C.O(n) D.O(3n) 5.算法分析的目的是(5. C、),算法分析的两个主要方面是(A)。 (1) A.找出数据结构的合理性 B.研究算法中的输入和输出关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 (2) A.空间复杂度和时间复杂度 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 6.计算机算法指的是(6. C、),它具备输入,输出和(B)等五个特性。 (1) A.计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法 (2) A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性,稳定性和安全性 7.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要(7. B)。

运筹学例题及解答

运筹学例题及解答 一、市场对I、II两种产品的需求量为:产品I在1-4月每月需10000件,5-9月每月需30000件,10-12月每月需100000件;产品II在3-9月每月需15000件,其它月份每月需50000件。某厂生产这两种产品成本为:产品I在1-5月内生产每件5元,6-12月内生产每件4.50元;产品II在1-5月内生产每件8元,6-12月内生产每件7元。该厂每月生产两种产品能力总和应不超过120000件。产品I容积每件0.2立方米,产品II容积每件0.4立方米,而该厂仓库容积为15000立方米,要求:(a)说明上述问题无可行解;(b)若该厂仓库不足时,可从外厂借。若占用本厂每月每平方米库容需1元,而租用外厂仓库时上述费用增加为1.5元,试问在满足市场需求情况下,该厂应如何安排生产,使总的生产加库存费用为最少。 解:(a) 10-12月份需求总计:100000X3+50000X3=450000件,这三个月最多生产120000X3=360000件,所以10月初需要(450000-360000=90000件)的库存,超过该厂最大库存容量,所以无解。 ? ?(b)考虑到生产成本,库存费用和生产费用和生产能力,该厂10-12月份需求的不足只需在7-9月份生产出来库存就行, 则设xi第i个月生产的产品1的数量,yi第i个月生产的产品2 的数量,zi,wi分别为第i个月末1,2的库存数s1i,s2i分别

为用于第i+1个月库存的原有及租借的仓库容量m3,可建立模型: Lingo 程序为 MODEL: sets: row/1..16/:; !这里n 为控制参数; col/1..7/:; AZ(row,col):b,x; endsets 1211 127777778 7887898998910910109101110111110111211min (4.57)( 1.5) 30000150003000015000300001500030000150003000015000.i i i i i i z x y s s x z y w x z z y w w x z z y w w x z z y w w x z z y w w st x z ===+++-=→-=+-=→+-=+-=→+-=+-=→+-=+-=→+-=+∑∑1211121100005000 120000(712)0.20.415000(712)0i i i i i i i y w x z i z w s s s i ?????????=→+=??+≤≤≤?+=+??≤≤≤???变量都大于等于

相关主题