数据结构第二章线性表习题含答案说明:顺序存储的线性表称为向量。
一,单项选择题一个向量第一个元素的地址是100,每个元素的长度为2,则第5个元素的地址是__①_B__。
A) 110 B) 108 C) 100 D) 120线性结构通常采用的两种存储结构是__①A___。
A) 顺序存储结构和链式存储结构B) 散列方式和索引方式C) 链表存储结构和数组D) 线性存储结构和非线性存储结构不带头结点的单链表head为空的判定条件是__①__A_.A) head==NULL B) head->next==NULLC) head->next==head D) head!=NULL带头结点的单链表head为空的判定条件是__①B___。
A) head==NULL B) head->next==NULLC) head->next==head D) head!=NULL非空的循环链表head的尾结点(由p所指向)满足__①_C__。
A) p->next==NULL B) p==NULLC) P->next==head D) p==head在循环双链表的p所指结点之后插入s所指结点的操作是___①_C_。
A) p->right=s; s->left=p; p->right->left=s; s->right=p->right;B) p->right=s; p->right->left=s; s->left=p; s->right=p->right;C) s->left=p; s->right=p->right; p->right=s; p->right->left=s;D) s->left=p; s->right=p->right; p->right->left=s; p->right=s;在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点, 则执行__①c___。
A) s->next=p->next; p->next=s; B) p->next=s->next; s->next=P;C) q->next=s; s->next=p; D) p->next=s; s->next=q;在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行__①b___。
A) s->next=p; p->next=s; B) s->next=p->next; p->next=s;C) s->next=p->next; p=s; D) p->next=s; s->next=p;在一个单链表中,若删除p所指结点的后续结点,则执行__①_a__。
A) p->next=p->next->next; B) p=p->next; p->next=p->next->next;C) p->next=p->next; D) p=p->next->next;10,假设双链表结点的类型如下:typedef struct linknode{int data,/*数据域*/struct linknode * llink; /*llink是指向前驱结点的指针域*/struct linknode * rlink; /*rlink是指向后续结点的指针域*/} bnode要把一个q所指新结点作为非空双向链表中的p所指结点的前驱结点插入到该双链表中,其算法是__①_c__。
q->rlink=p; q->llink=p->llink; p->llink=q; p->llink->rlink=q;p->llink=q; q->llink=p; p->llink->rlink=q; q->llink=p->llink;q->llink=p->llink; q->rlink=p; p->llink->rlink=q; p->llink=q;以上都不对,12,从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较__①_d__个结点。
A) n B) n/2 C) (n-1)/2 D) (n+1)/2一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是__①_b__。
A) O(1) B) O(n) C) O(n2) D) O(nlog2n)给定有n个元素的向量,建立一个有序单链表的时间频度是__①_d__。
A) n B) n/2 C) (n-1)/2 D) (n+1)/2二.填空题(将正确的答案填在相应的空中)单链表是_线性表____的链接存储表示。
向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动__n-i___个元素。
可以使用_二叉链表____表示树形结构。
在双链表中,每个结点有两个指针域,一个指向__直接前驱___,另一个指向_直接后继____。
在一个单链表中的p所指结点之前插入一个s所指结点时,可执行哪些操作_____。
在一个单链表中删除p所指结点时,应执行的操作_____。
带有一个头结点的单链表head为空的条件是head->next==NULL_____。
在一个单链表中p所指结点之后插入一个s所指结点时,应执行s->next=_p->next______和p->next=_s________的操作。
9,非空的循环链表head的尾结点(由p所指向),满足条件__p->next=head___。
10,对于一个具有n个结点的单链表,在已知p所指结点后插入一个新结点的时间复杂度是__o(1)___;在给定值为x的结点后插入一个新结点的时间复杂度是_o(n)____。
栈和队列个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是__c___。
A) edcba B) dceba C) dceab D) abcde若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi 为__c___。
A) i B) n-i C) n-i+1 D) 不确定判定一个栈ST(最多元素为m0)为空的条件是_b____。
A) ST->top!=0 B) ST->top==0 C) ST->top!=m0 D) ST->top==m0判定一个栈ST(最多元素为m0)为栈满的条件是_d____。
A) ST->top!=0 B) ST->top==0 C) ST->top!=m0 D) ST->top==m0栈的特点是__①b___,队列的特点是__②_a__。
A) 先进先出B) 先进后出在以下的叙述中,正确的是__①_c__。
A) 线性表的线性存储结构优于链表存储结构B) 栈的操作方式是先进先出C) 二维数组是其数据元素为线性表的线性表D) 队列的操作方式是先进后出一个队列的入队序列是1,2,3,4,则队列的输出序列是__b___。
A) 4,3,2,1 B) 1,2,3,4 C) 1,4,3,2 D) 3,2,4,1判定一个循环队列QU(最多元素为m0)为空的条件是_a____。
A) QU->front==QU->rear B) QU->front!=QU->rearC) QU->front==(QU->rear+1)%m0 D) QU->front!=(QU->rear+1)%m0判定一个循环队列QU(最多元素为m0)为满队列的条件是_d____。
A) QU->front==QU->rear B) QU->front!=QU->rearC) QU->front==(QU->rear+1)%m0 D) QU->front!=(QU->rear+1)%m0循环队列用数组A[m]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是__a___。
A) (rear-front+m)%m B) rear-front+1 C) rear-front-1 D) rear-front栈和队列的共同点是__c___。
A) 都是先进后出B) 都是先进先出C) 只允许在端点处插入和删除D) 没有共同点向一个栈顶指针为HS的链栈中插入一个s所指结点时,则执行_c____。
A) HS->next=s; B) s->next=HS->next; HS->next=s;C) s->next=HS; HS==s; D) s->next=HS; HS=HS->next;从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行__d___。
A) x=HS; HS=HS->next; B) x=HS->data;C) HS=HS->next; x=HS->data; D) x=HS->data; HS=HS->next;在一个链队中,假设f和r分别为队首和队尾指针,则插入s所指结点的运算时__b___。
A) f->next=s; f=s; B) r->next=s; r=s;C) s->next=r; r=s; D) s->next=f; f=s;17,在一个链队中,假设f和r分别为队首和队尾指针,则删除一个结点的运算时__c___。
A) r=f->next; B) r=r->next; C) f=f->next; D) f=r->next;二,填空题(将正确的答案填在相应的空中)向量、栈和队列都是_线性____结构,可以在向量的__端点___位置插入和删除元素;对于栈只能在_栈顶____插入和删除元素;对于队列只能在_队尾____插入元素和__队头___删除元素。
向一个长度为n的向量的第i个元素之前插入一个元素时,需向后移动_n-i+1____个元素。
向栈中压入元素的操作是_置入数据,栈顶指针加1____。
对栈进行退栈时的操作是_栈顶指针减1,取出数据____。
在一个循环队列中,队尾指针指向队尾元素的_直接后继____。
从循环队列中删除一个元素时,其操作是__取出队头指针所指数据元素,队头指针加1___。