1、Next=p; p-Prior-next=q; B. p-next=p;Prior=p-Prior; C. q-Next=q; D. q-13、已知循环队列存储在一维数组A0n-1中,且队列非空时front和rear分别指向对头元素和队尾元素,且要求第一个进入队列的元素存储在A0处,则初始时front和rear的值分别是 B 。 A. 0, 0 B. 0, n-1 C. n-1, 0 D. n-1, n-114、某队列允许在两端进行入队操作,但仅允许在一端进行出队操作(称为输出受限的双端队列),若a, b, c, d, e元素依次进队,则不可能得到的顺序是 C 。 A. bacde B. db
2、ace C. dbcae D. ecbad15、在双向链表中间插入一个结点时,需要修改修改 D 个指针域。 A. 1 B. 2 C. 3 D. 416、在按行优先顺序存储的三元组表中,下述陈述错误的是 D 。 A. 同一行的非零元素,是按列号递增次序存储的 B. 同一列的非零元素,是按行号递增次序存储的 C. 三元组表中三元组行号是非递减的 D. 三元组表中三元组列号是非递减的17、在稀疏矩阵的三元组表示法中,每个三元组表示 D 。 A. 矩阵中非零元素的值 B. 矩阵中数据元素的行号和列号 C. 矩阵中数据元素的行号、列号和值 D. 矩阵中非零数据元素的行号、列号和值18、对特殊矩阵采用压缩
3、存储的目的主要是为了 D 。 A. 表达变得简单 B. 对矩阵元素的存取变得简单 C. 去掉矩阵中的多余元素 D. 减少不必要的存储空间19、广义表是线性表的推广,它们之间的区别在于 A 。 A. 能否使用子表 B. 能否使用原子项 C. 表的长度 D. 是否能为空20、已知广义表(a, b, c, d)的表头是 A ,表尾是 D 。 A. a B. () C. (a, b, c, d) D. (b, c, d)21、下面说法不正确的是 A 。 A. 广义表的表头总是一个广义表 B. 广义表的表尾总是一个广义表 C. 广义表难以用顺序存储结构表示 D. 广义表可以是一个多层次的结构22、若广义
4、表A满足Head(A)=Tail(A),则A为 B 。 A. ( ) B. () C. ( ),( ) D. ( ), ( ), ( )二、填空题1、对于循环向量的循环队列,求队列长度的公式为 (rear-front+n+1)%n 。2、栈的逻辑特点是 后进先出 。队列的逻辑特点是 先进先出 。两者的共同特点是只允许在它们的 两端 出插入和删除数据元素,区别是 出栈在顶端,出队列在头部 。3、链队列LQ为空时,LQ-front-next= NULL .4、在一个链队列中,若队首指针为front,队尾指针为rear,则判断该队列只有一个结点的条件为 front-next = rear 。5、设串
5、S=“Ilikecomputer”,T=“com”,则Length(S)= 13 。Index(S, T)= 5 。6、在KMP算法中,nextj只与 T 串有关,而与 S 无关。7、字符串“ababaab“的Next数组值是 0012312 。8、稀疏矩阵一般压缩存储的方式有三种,分别是 三元组表 、 带行表的三元组表 和 稀疏矩阵的链式结构 。9、二维数组M中每个元素的长度是3字节,行下标i从07,列下标j从09,从首地址&M00开始连续存放在存储器中。若按行优先的方式存放,元素M75的起始地址为 (void)&M00 + 3*70+5 ;若按列优先方式存放,元素M75的起始地址为 (vo
6、id)&M00+3*40+7 。10、广义表(a, (a, b), d, e, (i, j), k)的长度是 5 ,深度是 3 。11、设广义表A( ( ( ), (a, (b), c) )2 )1,则Cal(Cdr(Cal(Cdr(Cal(A)= (b ) 三、设有一个循环队列Queue,只有头指针front,不设尾指针,另设一个含有元素个数的计数器count,试写出相应的判断队列空、判断队列满、出队算法和入队算法。要求:1、定义相应的循环队列的型(只有头指针,没有尾指针,但有一个元素个数的计数器);2、定义该队列的四个算法:判断队列空、判断队列满、出队算法和入队算法;3、在main函数验证
7、算法的正确性。/#include using namespace std;typedef int ele;class Queue ele data10; ele* _font; int len;public: Queue() _font = data; len = 0; void push_back(ele val) data(_font-data+len)%10 = val; len+; bool full() return (len = 10); bool empty() return (len = 0); void pop_font() _font = data + (_font - d
8、ata + 1)%10; len-; int font() return *_font;int main(int argc, char *argv) Queue q; int i; for ( i = 0; i 10; i+) q.push_back(i); coutq.font()endl; q.pop_font(); couttypedef stack STACK;enum Boolean FALSE = 0, TRUE = 1Boolean check(char *s) STACK _; while (*s) switch (*s) case : case (case _.push(*s
9、); break; if (_.top() != ) return FALSE; _.pop();) default: ; +s; if (_.empty() return TRUE; else return FALSE; /return _.empty(); char *data1 = 123()owsanfak1(234sff)1faer; char *data2 = 12(3owsanfak1)234sff1faercheck(data1)endlcheck(data2)val); p = p-next; DLIST() Node* p; while (head) p = head; h
10、ead = head- delete p; void push_back(elementtype val) if (last) last-next = new Node(val,last,NULL); last = last- else head = last = new Node(val,NULL,NULL); void print_back() string str; char buff13; Node* p = last; str += (string(itoa(p-val, buff,10) + - );pre; cout (str.substr(0,str.length()-4);
11、friend ostream& operatorval, buff, 10) + p = p- out val = x) /p is not the first element if (p-pre) /p is not the second element if (p-pre- if (p-next) p-next-pre = p- Node* tmp = p- p-next = p;pre = p;next = p-pre = tmp; elsepre = NULL; return 1;#endif/main.cpp#includecstdlib#include D-list.hint ma
12、in(int argc, char* argv) DLIST list; for (int i = 0; i+) list.push_back(i); cout list endl;=我是萌萌哒的分割线= class TLIST;class RowList;const int COL = 10;const int ROW = 10;const int R_COL = COL + 1;const int R_ROW = ROW + 1;struct TNODE int row; int col; int val; TNODE(int _row,int _col,int _val):row(_ro
13、w),col(_col),val(_val)bool operator (TNODE& a, TNODE& b) if (a.row b.row) return 1; return (a.col b.col);TNODE operator +(TNODE& return TNODE(a.row,a.col,a.val+b.val);class TLIST vector s; friend int SiagonalSum(TLIST& l); TLIST() TLIST(TLIST& l) s = l.s; void push_back(TNODE data) s.push_back(data)
14、; void insert(TNODE data) vectoriterator it; for (it = s.begin(); it s.end(); it+) if (*it) col & data.row = it-row) it-val += data.val; s.insert(it, data); TLIST operator+(TLIST& TLIST ret;iterator it1 = s.begin(), it2 = l.s.begin(), end1 = s.end(), end2 = l.s.end(); while (it1!= end1 & it2 != end2
15、) if (*it1*it2) ret.push_back(*it1); +it1; if (*it2*it1) ret.push_back(*it2); +it2; ret.push_back(*it1+*it2); it1+; it2+;=end1) ret.push_back(*it1); +it1; while (it2!=end2) ret.push_back(*it2); +it2; return ret; out, TLIST& friend RowList; int col = 1, row = 1;iterator it = l.s.begin(), end = l.s.end(); whi
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1