本文目录一览

1,数据结构考试题请高手来帮帮忙

1、串的长度和每个对应的字符都相等 2、n-1 3、队列,栈

数据结构考试题请高手来帮帮忙

2,数据结构试题

(1) 第1个是入度,第2个是出度: v1:3 0 v2:2 1 v3:1 1 v4:1 3 v5:2 1 v6:1 3 (2) v1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 1 0 (3) v1: ? v2: {v1, v4} v3: {v2} v4: {v3, v5, v6} v5: {v1} v6: {v1, v2, v5} (4) v1: {v2, v5, v6} v2: {v3, v6} v3: {v4} v4: {v2} v5: {v4, v6} v6: {v4}

数据结构试题

3,数据结构试题

这是程序: 保存为 select.c 即可运行:#include<stdio.h>#define max 7void select(int arr[],int len) int i=0,j=0; for(i=0;i<len;i++) int xuhao=i; for (j=i+1;j<len;j++) if (arr[j]<temp) xuhao=j; } } arr[xuhao]=arr[i]; arr[i]=temp; }}void print_out(int arr[],int len) int i=0; printf("排序后的结果是\n"); for (i=0;i<len;i++) } printf("\n");}void main() int arr[max]= select(arr,max); print_out(arr,max);}

数据结构试题

4,数据结构试卷

一、填空题(每空1分,共22分)1、 数据结构被形式地定义为(D, R),其中D是 数据元素 的有限集合,R是D上的 关系 有限集合。2、一个算法的效率可分为 时间 效率和 空间 效率。3、向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动 n-i+1 个元素。4、在一个循环队列中,队首指针指向队首元素的 前一个 位置。5、在具有n个单元的循环队列中,队满时共有 n-1 个元素。6、向栈中压入元素的操作是先 移动栈顶指针 ,后 存入元素 。7、 不包含任何字符(长度为0)的串 称为空串; 由一个或多个空格(仅由空格符)组成的串 称为空白串。8、假设有二维数组A6×8,每个元素用相邻的6个字节存储,存储器按字节编址。已知A的起始存储位置(基地址)为1000,则数组A的体积(存储量)为 288 B ;末尾元素A57的第一个字节地址为 1282 ;若按行存储时,元素A14的第一个字节地址为 (8+4)×6+1000=1072 ;若按列存储时,元素A47的第一个字节地址为 (6×7+4)×6+1000)=1276 。9、设一棵完全二叉树具有1000个结点,则此完全二叉树有 500 个叶子结点,有 499 个度为2的结点,有 1 个结点只有非空左子树,有 0 个结点只有非空右子树。10、线性有序表(a1,a2,a3,…,a256)是从小到大排列的,对一个给定的值k,用二分法检索表中与k相等的元素,在查找不成功的情况下,最多需要检索 8 次。设有100个结点,用二分法查找时,最大比较次数是 7 。11、散列法存储的基本思想是由 关键字的值 决定数据的存储地址。一、 判断题(每题1分,共10分)( × )9. 队是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。( × )1.二叉树中所有结点个数是2k-1-1,其中k是树的深度。(应2i-1) ( √ )7. 栈和队列的存储方式既可是顺序方式,也可是链接方式。 ( × )2.二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。 ( × )3.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2i—1个结点。(应2i-1)( × )3. 链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。( √ )4.用二叉链表法(link-rlink)存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。( √ )5.具有12个结点的完全二叉树有5个度为2的结点。( × )8. 线性表在顺序存储时,逻辑上相邻的元素未必在存储的物理位置次序上相邻。( × )5. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。 三、单项选择题(每小题2分,共18分)( C )1.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为:(A)存储结构 (B)逻辑结构 (C)顺序存储结构 (D)链式存储结构( B )2.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是 (A)110 (B)108 (C)100 (D)120( A )3. 在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:(D) 访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n) (E) 在第i个结点后插入一个新结点(1≤i≤n)(F) 删除第i个结点(1≤i≤n)(G) 将n个结点从小到大排序( B )4. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动 个元素(A)8 (B)63.5 (C)63 (D)7( A )4.判定一个队列QU(最多元素为m0)为满队列的条件是_______A.QU->rear - QU->front = = m0 B.QU->rear - QU->front -1= = m0 C.QU->front = = QU->rear D.QU->front = = QU->rear+1( B )6. 链表是一种采用 存储结构存储的线性表;(A)顺序 (B)链式 (C)星式 (D)网状( D )7. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址:(A)必须是连续的 (B)部分地址必须是连续的(C)一定是不连续的 (D)连续或不连续都可以( B )8. 线性表L在 情况下适用于使用链式结构实现。(A)需经常修改L中的结点值 (B)需不断对L进行删除插入 (C)L中含有大量的结点 (D)L中结点结构复杂( C )9. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为 A.i B.n=i C.n-i+1 D.不确定四、1、 略2、 答:X= 116 Y= 0 Z= 100 首址= 108 末址= 112 五、1、 答:输出为“stack”。2、 答:输出为“char”。六、解:方案1;哈夫曼编码先将概率放大100倍,以方便构造哈夫曼树。 w={7,19,2,6,32,3,21,10},按哈夫曼规则:【[(2,3),6], (7,10)】,
给你找了一份自考的数据结构试卷和答案试卷: http://content.edu-edu.com.cn/res/2006/11/16/00000d2t.shtml答案: http://edu.qq.com/a/20061129/000168.htm

5,数据结构上机题答案

一、选择题 2012年数据结构期末考试题及答案1.在数据结构中,从逻辑上可以把数据结构分为 C 。A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。A.逻辑 B.存储 C.逻辑和存储 D.物理4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。A.数据的处理方法 B.数据元素的类型C.数据元素之间的关系 D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑 A 。A.各结点的值如何 B.结点个数的多少C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。6.以下说法正确的是 D 。A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是 O(n2) 。s =0;for( I =0; i<n; i++)for(j=0;j<n;j++)s +=B[i][j];sum = s ;9.下面程序段的时间复杂度是 O(n*m) 。for( i =0; i<n; i++)for(j=0;j<m;j++)A[i][j] = 0;10.下面程序段的时间复杂度是 O(log3n) 。i = 0;while(i<=n)i = i * 3;11.在以下的叙述中,正确的是 B 。A.线性表的顺序存储结构优于链表存储结构B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出D.队列的操作方式是先进后出12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 B 。A.数据元素具有同一特点B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致C.每个数据元素都一样D.数据元素所包含的数据项的个数要相等。
网页链接常用数据结构代码
这是我当时学数据结构时留下来的程序,有很多不足和能改进的地方,主要思想是通过一个菜单来执行建立、插入、删除、逆置,求链表长度、输出等操作:#include#define null 0 void menu() {clrscr(); printf("*********************menu******************************\n\n"); printf(" 1.create\n"); printf(" 2.insert\n"); printf(" 3.delete\n"); printf(" 4.reverse\n"); printf(" 5.print\n"); printf(" 6.length\n"); printf(" 0.exit\n\n"); printf("*******************************************************\n"); printf("please input your choice:"); } typedef struct lnode{ int data; struct lnode *next; }lnode; void listcreate(lnode *head) { int n=0; lnode *p1,*p2; p1=p2=(lnode*)malloc(sizeof(lnode)); scanf("%d",&p1->data); head->next=null; while(p1->data!=0) {n+=1; if(n==1)head->next=p1; else p2->next=p1; p2=p1; p1=(lnode*)malloc(sizeof(lnode)); scanf("%d",&p1->data); } p2->next=null; } void listinsert(lnode *head) {int j=0,e,i; lnode *p,*s; p=head; printf("input a number to insert:"); scanf("%d",&e); printf("input a location to insert before:"); scanf("%d",&i); while(p&&jnext;j++;} while(!p||j>i-1) { printf("you have input a wrong location please input again:"); scanf("%d",&i); j=0;p=head; while(p&&jnext;j++;} }; s=(lnode*)malloc(sizeof(lnode)); s->data=e;s->next=p->next;p->next=s; } void listdelete(lnode *head) {int j=0,e,i; lnode *p,*q; p=head; printf("input a location to delete:"); scanf("%d",&i); while(p->next&&jnext;j++;} while(!(p->next)||j>i-1) { printf("you have input a wrong location please input again:"); scanf("%d",&i); j=0;p=head; while(p&&jnext;j++;} }; q=p->next;p->next=q->next;e=q->data;free(q); printf("the deleted number is %d ",e); getch(); } void listreverse(lnode *head) { lnode *p,*q,*s; p=head->next; s=head->next; q=p->next; s->next=null; while(q) { p=q; q=q->next; p->next=s; s=p; } head->next=p; } void listlength(lnode *head) {int n=0; lnode *p; p=head->next; while(p) {n+=1;p=p->next;} printf("the length of the list is %d ",n); getch(); } void print(lnode *head) {lnode *p; p=head->next; if(head->next!=null) do{printf(" %d",p->data); p=p->next; }while(p!=null); getch(); } main() {int operation; lnode *head; head=(lnode*)malloc(sizeof(lnode)); do {menu(); scanf("%d",&operation); switch(operation) {case 1:printf("input numbers to create a list end by 0:"); listcreate(head); break; case 2:listinsert(head); break; case 3:listdelete(head); break; case 4:printf("the inverted numbers are:"); listreverse(head); break; case 5:printf("the numbers are:");print(head); break; case 6:listlength(head); break; } }while(operation!=0); } 希望对你有帮助

文章TAG:数据  数据结构  数据结构机  结构  数据结构机考题库  
下一篇