计算机专业英语 Chapter4
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Computer English
Chapter 4 Elementary Data Structures
Key points: useful terms and definitions of data structure Difficult points: Stack, queue, tree
Requirements:
1. The properties of Stack, Queue, and Linked lists 2. 掌握常用英汉互译技巧
4.1 Stacks and queues
New Words & Expressions:
stack n. 栈,堆栈 attribute n. 属性,性质 属性, overflow n. 上溢 queue n. 队列 underflow n. 下溢 pseudocode n. 伪码
4.2 Linked lists
A linked list is a data structure in which the objects are arranged in a linear order. Unlike an array, though, in which the linear order is determined by the array indices, the order in a linked list is determined by a pointer in each object. Linked lists provide a simple, flexible representation for dynamic sets. 链表这个数据结构中的对象都以线性顺序排列的, 链表这个数据结构中的对象都以线性顺序排列的,但不同 于数组的顺序是由数组下标确定, 于数组的顺序是由数组下标确定,链表的顺序是由每个对 象的指针确定。链表为动态集合提供了一个简单、 象的指针确定。链表为动态集合提供了一个简单、灵活的 表示形式。 表示形式。
4.2 Linked lists
Fig.4-3 A doubly linked list
4.2 Linked lists
As shown in Fig.4-3, each element of a doubly linked list L is an object with a key field and two other pointer fields: next and prev. The object may also contain other satellite data. Given an element x in the list, next[x] points to its successor in the linked list, and prev[x] points to its predecessor. If prev[x] = NIL, the element x has no predecessor and is therefore the first element, or head, of the list. If next[x] = NIL, the element x has no successor and is therefore the last element, or tail, of the list. An attribute head[L] points to the first element of the list. If head[L] = NIL, the list is empty. 如图4-3所示,双向链表 中的每个元素都是一个实体 中的每个元素都是一个实体, 如图 所示,双向链表L中的每个元素都是一个实体,由一个数值域和两 所示 个指针域组成,其中两个指针分别是: 个指针域组成,其中两个指针分别是:next和prev,实体也可以包含子数 和 , 给定表中一个元素x, 指出它在链表中的后继, 据。给定表中一个元素 ,next[x]指出它在链表中的后继,prev[x]指出它 指出它在链表中的后继 指出它 的前趋。 表示元素x没有前趋 是第一个元素, 的前趋。prev[x] = NIL表示元素 没有前趋,因此 是第一个元素,即队头 表示元素 没有前趋,因此x是第一个元素 元素;如果next[x] = NIL,表示 没有后继,也就是最后一个元素,队尾 没有后继, 元素;如果 ,表示x没有后继 也就是最后一个元素, 元素。指针head[L]指向队列中的第一个元素,如果 指向队列中的第一个元素, 元素。指针 指向队列中的第一个元素 如果head[L] = NIL表示队 表示队 列为空。 列为空。
4.2 Linked lists
A list may have one of several forms. It may be either singly linked or doubly linked, it may be sorted or not, and it may be circular or not. If a list is singly linked, we omit the prev pointer in each element. If a list is sorted, the linear order of the list corresponds to the linear order of keys stored in elements of the list; the minimum element is the head of the list, and the maximum element is the tail. If the list is unsorted, the elements can appear in any order. 一个链表可以是下面几种形式之一:单向链表或双向链表,有序的或无 一个链表可以是下面几种形式之一:单向链表或双向链表, 序的,循环的或非循环的。对于单向链表, 序的,循环的或非循环的。对于单向链表,我们就不必对每个元素使用 prev指针了。如果一个表是有序的,表的线序和表中存储的元素值的线 指针了。 指针了 如果一个表是有序的, 序是一致的, 最小值的元素是队列的头部元素, 序是一致的,即:最小值的元素是队列的头部元素,最大值的元素是队 尾元素。如果一个表是无序的,其中的元素可以以任何顺序出现。 尾元素。如果一个表是无序的,其中的元素可以以任何顺序出现。
4.1 Stacks and queues
4.1.2 Queues We call the INSERT operation on a queue ENQUEUE, and we call the DELETE operation DEQUEUE; like the stack operation POP, DEQUEUE takes no element argument. The FIFO property of a queue causes it to operate like a line of people in the registrar's office. The queue has a head and a tail. When an element is enqueued, it takes its place at the tail of the queue, just as a newly arriving student takes a place at the end of the line. The element dequeued is always the one at the head of the queue, like the student at the head of the line who has waited the longest. (Fortunately, we don't have to worry about computational elements cutting into line.)
4.1 Stacks and queues
4.1.1 Stacks The INSERT operation on a stack is often called PUSH, and the DELETE operation, which does not take an element argument, is often called POP. These names are allusions to physical stacks, such as the spring-loaded stacks of plates used in cafeterias. The order in which plates are popped from the stack is the reverse of the order in which they were pushed onto the stack, since only the top plate is accessible. 栈中插入元素的操作通常称为入栈(PUSH),删除操作称为出栈(POP), ,删除操作称为出栈 栈中插入元素的操作通常称为入栈 , 这里不考虑删除的那个元素。这些名字来源于实际的堆栈, 这里不考虑删除的那个元素。这些名字来源于实际的堆栈,就像餐厅里 使用的带有弹簧座的一叠盘子:因为只有顶部的盘子是方便取用, 使用的带有弹簧座的一叠盘子:因为只有顶部的盘子是方便取用,所以 盘子从这一叠中取出的顺序与其被放入的顺序是相反的。 盘子从这一叠中取出的顺序与其被放入的顺序是相反的。
我们称对队列进行的插入操作为入队 (ENQUEUE),删除操作为出队 , (DEQUEUE);同栈中的出栈操作一样,出队操作不考虑其中的元素。队列的 ;同栈中的出栈操作一样,出队操作不考虑其中的元素。 先进先出原则就像排队等待注册的一行人群。队列有一个头部和一个尾部。 先进先出原则就像排队等待注册的一行人群。队列有一个头部和一个尾部。当 一个元素入队,它就成为队列的尾部,就像一个新来的学生成为队尾一样; 一个元素入队,它就成为队列的尾部,就像一个新来的学生成为队尾一样;出 队的元素总是队列头部的元素,像是站在队列最前的学生是排队最久的人一样。 队的元素总是队列头部的元素,像是站在队列最前的学生是排队最久的人一样。 (庆幸的是,对于计算机元素,我们Βιβλιοθήκη Baidu必担心插队的情况。) 庆幸的是, 庆幸的是 对于计算机元素,我们不必担心插队的情况。
Abbreviations:
LIFO(last in first out)后进先出 ( ) FIFO(fisrt in first out)先进先出 ( )
4.1 Stacks and queues
Stacks and queues are dynamic sets in which the element removed from the set by the DELETE operation is prespecified. In a stack, the element deleted from the set is the one most recently inserted: the stack implements a last-in, first-out, or LIFO, policy. Similarly, in a queue, the element deleted is always the one that has been in the set for the longest time: the queue implements a first-in, first out, or FIFO, policy. There are several efficient ways to implement stacks and queues on a computer. In this section we show how to use a simple array to implement each. 栈和队列都是动态的集合, 栈和队列都是动态的集合,其中的元素由预先定义的删除操作可将其去 在栈中,最近被插入的元素最先被删除,即栈是按后进先出(LIFO) 除。在栈中,最近被插入的元素最先被删除,即栈是按后进先出 的原则进行的;类似的,在队列里,被删除的元素是最早进入队列的, 的原则进行的;类似的,在队列里,被删除的元素是最早进入队列的, 即队列是以先进先出(FIFO)的原则进行的。在计算机上,对于栈和队列 的原则进行的。 即队列是以先进先出 的原则进行的 在计算机上, 有几种有效的实现方法,这一节我们给出如何用简单的数组来实现它们。 有几种有效的实现方法,这一节我们给出如何用简单的数组来实现它们。
Chapter 4 Elementary Data Structures
Key points: useful terms and definitions of data structure Difficult points: Stack, queue, tree
Requirements:
1. The properties of Stack, Queue, and Linked lists 2. 掌握常用英汉互译技巧
4.1 Stacks and queues
New Words & Expressions:
stack n. 栈,堆栈 attribute n. 属性,性质 属性, overflow n. 上溢 queue n. 队列 underflow n. 下溢 pseudocode n. 伪码
4.2 Linked lists
A linked list is a data structure in which the objects are arranged in a linear order. Unlike an array, though, in which the linear order is determined by the array indices, the order in a linked list is determined by a pointer in each object. Linked lists provide a simple, flexible representation for dynamic sets. 链表这个数据结构中的对象都以线性顺序排列的, 链表这个数据结构中的对象都以线性顺序排列的,但不同 于数组的顺序是由数组下标确定, 于数组的顺序是由数组下标确定,链表的顺序是由每个对 象的指针确定。链表为动态集合提供了一个简单、 象的指针确定。链表为动态集合提供了一个简单、灵活的 表示形式。 表示形式。
4.2 Linked lists
Fig.4-3 A doubly linked list
4.2 Linked lists
As shown in Fig.4-3, each element of a doubly linked list L is an object with a key field and two other pointer fields: next and prev. The object may also contain other satellite data. Given an element x in the list, next[x] points to its successor in the linked list, and prev[x] points to its predecessor. If prev[x] = NIL, the element x has no predecessor and is therefore the first element, or head, of the list. If next[x] = NIL, the element x has no successor and is therefore the last element, or tail, of the list. An attribute head[L] points to the first element of the list. If head[L] = NIL, the list is empty. 如图4-3所示,双向链表 中的每个元素都是一个实体 中的每个元素都是一个实体, 如图 所示,双向链表L中的每个元素都是一个实体,由一个数值域和两 所示 个指针域组成,其中两个指针分别是: 个指针域组成,其中两个指针分别是:next和prev,实体也可以包含子数 和 , 给定表中一个元素x, 指出它在链表中的后继, 据。给定表中一个元素 ,next[x]指出它在链表中的后继,prev[x]指出它 指出它在链表中的后继 指出它 的前趋。 表示元素x没有前趋 是第一个元素, 的前趋。prev[x] = NIL表示元素 没有前趋,因此 是第一个元素,即队头 表示元素 没有前趋,因此x是第一个元素 元素;如果next[x] = NIL,表示 没有后继,也就是最后一个元素,队尾 没有后继, 元素;如果 ,表示x没有后继 也就是最后一个元素, 元素。指针head[L]指向队列中的第一个元素,如果 指向队列中的第一个元素, 元素。指针 指向队列中的第一个元素 如果head[L] = NIL表示队 表示队 列为空。 列为空。
4.2 Linked lists
A list may have one of several forms. It may be either singly linked or doubly linked, it may be sorted or not, and it may be circular or not. If a list is singly linked, we omit the prev pointer in each element. If a list is sorted, the linear order of the list corresponds to the linear order of keys stored in elements of the list; the minimum element is the head of the list, and the maximum element is the tail. If the list is unsorted, the elements can appear in any order. 一个链表可以是下面几种形式之一:单向链表或双向链表,有序的或无 一个链表可以是下面几种形式之一:单向链表或双向链表, 序的,循环的或非循环的。对于单向链表, 序的,循环的或非循环的。对于单向链表,我们就不必对每个元素使用 prev指针了。如果一个表是有序的,表的线序和表中存储的元素值的线 指针了。 指针了 如果一个表是有序的, 序是一致的, 最小值的元素是队列的头部元素, 序是一致的,即:最小值的元素是队列的头部元素,最大值的元素是队 尾元素。如果一个表是无序的,其中的元素可以以任何顺序出现。 尾元素。如果一个表是无序的,其中的元素可以以任何顺序出现。
4.1 Stacks and queues
4.1.2 Queues We call the INSERT operation on a queue ENQUEUE, and we call the DELETE operation DEQUEUE; like the stack operation POP, DEQUEUE takes no element argument. The FIFO property of a queue causes it to operate like a line of people in the registrar's office. The queue has a head and a tail. When an element is enqueued, it takes its place at the tail of the queue, just as a newly arriving student takes a place at the end of the line. The element dequeued is always the one at the head of the queue, like the student at the head of the line who has waited the longest. (Fortunately, we don't have to worry about computational elements cutting into line.)
4.1 Stacks and queues
4.1.1 Stacks The INSERT operation on a stack is often called PUSH, and the DELETE operation, which does not take an element argument, is often called POP. These names are allusions to physical stacks, such as the spring-loaded stacks of plates used in cafeterias. The order in which plates are popped from the stack is the reverse of the order in which they were pushed onto the stack, since only the top plate is accessible. 栈中插入元素的操作通常称为入栈(PUSH),删除操作称为出栈(POP), ,删除操作称为出栈 栈中插入元素的操作通常称为入栈 , 这里不考虑删除的那个元素。这些名字来源于实际的堆栈, 这里不考虑删除的那个元素。这些名字来源于实际的堆栈,就像餐厅里 使用的带有弹簧座的一叠盘子:因为只有顶部的盘子是方便取用, 使用的带有弹簧座的一叠盘子:因为只有顶部的盘子是方便取用,所以 盘子从这一叠中取出的顺序与其被放入的顺序是相反的。 盘子从这一叠中取出的顺序与其被放入的顺序是相反的。
我们称对队列进行的插入操作为入队 (ENQUEUE),删除操作为出队 , (DEQUEUE);同栈中的出栈操作一样,出队操作不考虑其中的元素。队列的 ;同栈中的出栈操作一样,出队操作不考虑其中的元素。 先进先出原则就像排队等待注册的一行人群。队列有一个头部和一个尾部。 先进先出原则就像排队等待注册的一行人群。队列有一个头部和一个尾部。当 一个元素入队,它就成为队列的尾部,就像一个新来的学生成为队尾一样; 一个元素入队,它就成为队列的尾部,就像一个新来的学生成为队尾一样;出 队的元素总是队列头部的元素,像是站在队列最前的学生是排队最久的人一样。 队的元素总是队列头部的元素,像是站在队列最前的学生是排队最久的人一样。 (庆幸的是,对于计算机元素,我们Βιβλιοθήκη Baidu必担心插队的情况。) 庆幸的是, 庆幸的是 对于计算机元素,我们不必担心插队的情况。
Abbreviations:
LIFO(last in first out)后进先出 ( ) FIFO(fisrt in first out)先进先出 ( )
4.1 Stacks and queues
Stacks and queues are dynamic sets in which the element removed from the set by the DELETE operation is prespecified. In a stack, the element deleted from the set is the one most recently inserted: the stack implements a last-in, first-out, or LIFO, policy. Similarly, in a queue, the element deleted is always the one that has been in the set for the longest time: the queue implements a first-in, first out, or FIFO, policy. There are several efficient ways to implement stacks and queues on a computer. In this section we show how to use a simple array to implement each. 栈和队列都是动态的集合, 栈和队列都是动态的集合,其中的元素由预先定义的删除操作可将其去 在栈中,最近被插入的元素最先被删除,即栈是按后进先出(LIFO) 除。在栈中,最近被插入的元素最先被删除,即栈是按后进先出 的原则进行的;类似的,在队列里,被删除的元素是最早进入队列的, 的原则进行的;类似的,在队列里,被删除的元素是最早进入队列的, 即队列是以先进先出(FIFO)的原则进行的。在计算机上,对于栈和队列 的原则进行的。 即队列是以先进先出 的原则进行的 在计算机上, 有几种有效的实现方法,这一节我们给出如何用简单的数组来实现它们。 有几种有效的实现方法,这一节我们给出如何用简单的数组来实现它们。