数据结构试题-考研精选(4)
时间:2025-04-03
时间:2025-04-03
sqstack stack; stack.top= -1; lklist *p;
for(p=head;p!=0;p=p->next) {stack.top++; stack.s[stack.top]=p->data;}
for(p=head;p!=0;p=p->next) if (p->data==stack.s[stack.top]) stack.top=stack.top-1; else return(0); return(1); }
2. 设计在链式存储结构上建立一棵二叉树的算法。
typedef char datatype;
typedef struct node {datatype data; struct node *lchild,*rchild;} bitree; void createbitree(bitree *&bt)
{
char ch; scanf("%c",&ch); if(ch=='#') {bt=0; return;}
bt=(bitree*)malloc(sizeof(bitree)); bt->data=ch; createbitree(bt->lchild); createbitree(bt->rchild); }
3. 设计判断一棵二叉树是否是二叉排序树的算法。 int minnum=-32768,flag=1;
typedef struct node{int key; struct node *lchild,*rchild;}bitree; void inorder(bitree *bt) {
if (bt!=0)
{inorder(bt->lchild); if(minnum>bt->key)flag=0; minnum=bt->key; inorder(bt->rchild);} }
数据结构试卷(二)
一、选择题(24分)
1.下面关于线性表的叙述错误的是( )。
(A) 线性表采用顺序存储必须占用一片连续的存储空间 (B) 线性表采用链式存储不必占用一片连续的存储空间
(C) 线性表采用链式存储便于插入和删除操作的实现 (D) 线性表采用顺序存储便于插入和删除操作的实现
2.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有( )个空指针域。 (A) 2m-1 (B) 2m (C) 2m+1 (D) 4m
3.设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为( )。 (A) R-F (B) F-R (C) (R-F+M)%M (D) (F-R+M)%M
4.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为( )。 (A) BADC (B) BCDA (C) CDAB (D) CBDA
5.设某完全无向图中有n个顶点,则该完全无向图中有( )条边。 (A) n(n-1)/2 (B) n(n-1) (C) n2 (D) n2-1
6.设某棵二叉树中有2000个结点,则该二叉树的最小高度为( )。