数据结构及其算法第二次作业

《数据结构及其算法》第二次作业
请于11月16日上传至FTP
1.
对于采用顺序结构存储的串x,编写一个函数删除其值等于ch的所有字符,

要求具有较高的效率。
2.
输入一个字符串,内有数字和非数字字符,如:ak123x456 17960?302gef4563,
将其中连续的数字作为一个整体,依次存放到一数组a中,例如123放入
a[0]],456放入a[1],… … 。编程统计其共有多少个整数,并输出这些
数。
3.
写一个递归算法来实现字符串逆序存储,要求不另设串存储空间。
4.
设有两个栈S1,S2都采用顺序栈方式,并且共享一个存储区[O..maxsize-1],
为了尽量利用空间,减少溢出的可能,可采用栈顶相向,迎面增长的存储方
式。试设计S1,S2有关入栈和出栈的操作算法。
5.
假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾结点,但
不设头指针,请写出相应的入队列和出队列算法。

合集下载

数据结构作业答案第二章作业答案

数据结构作业答案第二章作业答案

第二章作业解答一、基础知识题2.1试描述头指针、头结点、开始结点的区别,并说明头指针和头结点的作用。

答:头指针是指向头结点或开始结点的指针,我们就是靠它来描述和访问整个线性链表,如果失去了头指针,整个线性链表也就无法访问,因而线性链表的存在与否也就失去了意义。

头结点是为了对线性链表操作的方便而引入的,引入头结点主要有两方面的方便,一是当在线性链表的第一个位置进行操作时无需做特殊处理;二是就整个线性链表而言无论空表和非空表,对表的操作可以保持一致性。

头结点的数据域为空而指针域指向开始结点,如果存在头结点,那么线性链表的头指针就指向它。

开始结点是真正存储数据的第一个线性链表的结点,如果有头结点的话,头结点的指针域就指向它;如果没有头结点的话,头指针就指向它。

2.2何时选用顺序表、何时选用链表作为线性表的存储结构为宜?答:从空间复杂度上考虑:顺序表的存储空间是静态分配的,链表的存储空间是动态分配的,顺序表的存储密度为1,链表的存储密度小于1,因此如果表的长度变化较大,事先难以确定表的规模宜采用链表,否则用顺序表。

从时间复杂度上考虑:顺序表的最大优点是,它是一种随机存取结构,查找算法的时间复杂度低;最大缺点是插入删除操作的时间复杂度较链表高;链表的最大优点是插入删除操作的时间复杂度低;最大缺点是查找算法的时间复杂度较顺序表高。

因此对于频繁进行插入和删除的线性表,宜采用链表做存储结构。

若插入和删除操作较少,而查找操作较多时宜采用顺序表。

2.3在单链表、双链表和单循环链表中,若仅知道指针p指向某结点,不知道头指针,能否将结点*p从相应链表中删除?若可以,其时间复杂度各为多少?答:要删除某结点,我们需要知道该结点的前后两个结点。

在单链表中,不知道头指针,则无法访问该结点的前一个结点,因此无法删除。

在双链表中可以删除,时间复杂度为O(1)。

在单循环链表中可以删除,时间复杂度为O(n)。

2.4下述算法的功能是什么?LinkList Demo(LinkList L){ //L是无头结点的单链表ListNode *Q,*P;if(L&&L->next){Q=L;L=L->next;P=L;while(P->next)P=P->next;P->next=Q;Q->next=NULL;}return L;}//Demo功能是:如果线性表的长度大于1,则将线性表第一个位置上结点放到最后一个位置上。

数值分析第二次大作业——编写ln函数实验报告

数值分析第二次大作业——编写ln函数实验报告

为一个整体,将 ln(a)进行 Taylor 级数分解,进而按式计算可以求得 ln(x)的值。由于我们选 取级数的前 n 项和近似 ln(a),则有:
Rn (a
1)

(1)n
(a 1)n1 n 1
…;
|
Rn
(a
1)
||
(a 1)n1 n 1
|
。
2
自 92 乔晖 2009011414
精度为 20 位,即 h4 1020 。
int * GetNumber() {return number;}
//获得大数中的整数数组
bool GetSgn() const {return sgn;}
//获得大数的符号
bool IsZero();
//判断大数是否为 0
CBigNumber Reverse() {sgn = !sgn;return *this;} //取相反数
数值分析——编写 ln 函数
实验报告
自 92 乔晖 2009011414
自 92 乔晖 2009011414
数值分析——编写 ln 函数实验报告
目录
一、 实验任务 ................................................... 2
二、 编译环境 ................................................... 2
1u
x 1
35
5
自 92 乔晖 2009011414
数值分析——编写 ln 函数实验报告
其前 n 项和,近似可得 ln(x)的值。
基于以上原理,可以设计迭代算法,累加 2u2i1 得到前 n 项和。每次计算后,判断计 2i 1

第二次算法作业

第二次算法作业

第二次算法作业
交作业时间12:00 p.m., December 13, 2007
证明以下 6 个问题的 NP-完全性
1.Set Packing
实例: 有限集 S 上的某些子集的集合 C, 正整数 K<=|C|.
问题: C 中是否有 K个互不相教的子集?
2.Minimum Sum of Squares
实例:有限个正整数的几何 A, 两个正整数 K, J。

问题: $A$中正整数是否可被划分为 K 个互不相交的子集 A_1,A_2,… ,A_K 满足
Sum{1<=i<=K}(Sum{a in A_i}a)2 <=J ?
3.Hamiltonian Path Between Two Points
实例: 图 G=(V,E), 及其两个特定顶点 a 和 b.
问题: G 中是否有 a 和 b 之间的 Hamiltonian 通路?
4.Steiner Tree in Graphs
实例:图 G=(V,E), V 的子集 R, 正整数 K<=|V|.
问题:G 中是否存在包括 R 所有点但总数又不多于个 K 个点的子树?
5.Set Splitting
实例:有限集 S 上的某些子集的集合 C.
问题:可否划分 S 成两个子集 S_1 和 S_2 使得 C 中每一个子集都既不被 S_1 也不被 S_2 包含?
6.Graph 3-Colorability
实例:图 G=(V,E).
问题:图 G可 3 着色吗?即, 是否有函数 f:V {1,2,3}满足若{u,v} 是 G 中边则 f(u)不等于 f(v)?。

数据结构+算法+第二版+课后+答案+部分

数据结构+算法+第二版+课后+答案+部分

算法与数据结构课后习题答案第一章一、选择题CCADB二、判断题FFFFT三、简答题5.(1) n-1 (2)1 (3)n(n+1)/2 (4)if(a<b) n , a++ n/2(5)if(x>100) 11*100-1, x-=10;y-- 1006.(1)O(log3n) (2) O(n2) (3) O(n2)第二章一、选择题1~5: AADCD 6~10:BCBAD 11~12:BD二、判断题1~5:FTFTF 6~10:TFTTF 11~12:FF三、算法设计题1.#define arrsize 100int Inserseqx(datatype A[ ], int *elenum, datatype x ) { int i=*elenum-1;if(*elenum==arrsize) return 0;while(i>=0&&A[i]>=x ){ A[i+1]=A[i]; i--; }A[i+1]=x; *elenum ++;return 1;}6.typedef struct node{ dataype data;struct node *next;}LNode, *LinkList;int Inserlinkx(LinkList L,datatype x ){ LNode *p=L,*s;s=(LNode *)malloc(sizeof(LNode));if(!s) return 0;s->data=x;while(p->next&&p->next->data<=x) p=p->next;s->next=p->next; p->next=s;return 1;}第三章一、选择题1~5:CBDBB 6~10: CBDCC二、判断题1~5:TTTFF三、简答题4. 共14种顺序:4321 3214 3241 3421 2134 2143 23142341 2431 1234 1243 1324 1342 1432四、简答题1.#define MAXSIZE 1000typedef struct{datatype data[MAXSIZE];int top;}SeqStack;SeqStack *Init_SeqStack(); /*栈初始化*/int Empty_SeqStack(SeqStack *s);/*判栈空*/int Push_SeqStack(SeqStack *s,datatype x); /*x入栈*/ int Pop_SeqStack(SeqStack *s,datatype *x); /*出栈*/int judgehuiwen(char *str)/*返回1表示是回文,否则不是*/{ SeqStack *s=Init SeqStack( );char *ch=str,ch1;while(*ch!=’@’){Push_SeqStack(s, *ch);ch++;}ch=str;while(!Empty_SeqStack(s)){ Pop_SeqStack(s,&ch1);if(*ch!=ch1) return 0;ch++;}return 1;}5.#define MAXSIZE 1000typedef struct{datatype data[MAXSIZE];int top;}SeqStack;SeqStack *Init_SeqStack(); /*栈初始化*/int Empty_SeqStack(SeqStack *s);/*判栈空*/int Push_SeqStack(SeqStack *s,datatype x); /*x入栈*/ int Pop_SeqStack(SeqStack *s,datatype *x); /*出栈*/ int judge(char *str)/*返回1表示是匹配,否则不是*/{ SeqStack *s=Init SeqStack( );char *ch=str,ch1;while(*c h!=’\0’){ if(*ch==’(‘) Push_SeqStack(s, *ch);else if(*ch==’)‘)if(!Pop_SeqStack(s,&ch1)) return 0;ch++;}if(Empty_SeqStack(s)) return 1;else return 0;}4.typedef struct node{ dataype data;struct node *next;}Lqnode, *LqList;置空:LqList Init_lq(){ LqList rear=(LqList *)malloc(sizeof(LqList)); rear->next=rear;return rear;}入队:int in_lq(LqList *rear, datatype x){ Lqnode *p=(LqList *)malloc(sizeof(LqList)); if(!p) return 0;p->data=x;p->next=*rear->next; *rear->next=p; *rear=p; return 1;}出队:int out_lq(LqList *rear, datatype x){ Lqnode *p;if(*rear->next==*rear) return 0;p=*rear->next->next;if(p==*rear){*rear=*rear->next;*rear->next=*rear;} else *rear->next->next=p->next;free(p);return 1;}第四章一、选择题1-3:CBA 4:DAB 5:CCC 6:C二、判断题FTFFFFF三、简答题2.4. k=i+j-2+(i+1)%2 或k=i+j-1+i%26.第五章一、选择题:1~5:CCBBB 6~10:CBDAD 11~15:DCBDB3 5 6 7 98 13 17二、判断题:1~5:FTFFT 6~10:FFFTF 11~15:TFTFF 16~20:FTFFT 三、简答题:((2)4、条件:森林中既没有孩子也没有右边的兄弟的结点11. 最大值:2h-1 最小值:2h-116.0.31 0.16 0.10 0.08 0.11 0.20 0.04 0.12 0.21 0.28 0.410.59a b c d e f ga:01 b:001 c:110 d:0000 e:111 f:10 g:0001四、算法设计题:typedef struct bitnode{ datatype data;struct bitnode *lchild, *rchild;}BiTNode, *BiTree;1.计算结点数目int counttotal(BiTree bt){ if(bt==NULL) return 0;return counttotal(bt->lchild)+counttotal(bt->rchild)+1;}计算度为1的结点数目:int countdegree1(BiTree bt){ if(bt==NULL) return 0;if( bt->lchild==NULL&& bt->rchild==NULL) return 0;if( bt->lchild==NULL|| bt->rchild==NULL)return countdegree1(bt->lchild)+ countdegree1(bt->rchild)+1; return countdegree1(bt->lchild)+ countdegree1(bt->rchild);}3.求深度;int depth(BiTree bt){ int ld,rd;if(bt==NULL) return 0;ld= depth(bt->lchild); rd=depth(bt->rchild);if( ld>=rd) return ld+1;return rd+1;}第6章作业讲评一、选择题1-4:BABC 5:BD 6-10:DBACB二、判断题1-5:FTTFF 6-10:TTFFT 11-15:FTFFF三、简答题1.(1)ID(1)=2 OD(1)=1ID(2)=2 OD(2)=2ID(3)=1 OD(3)=3ID(4)=3 OD(4)=0ID(5)=2 OD(5)=3ID(6)=1 OD(6)=2(2)0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0(3) (4)54 3 2 1 0 54 3 2 1 0(5) 2. (1)0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0(2)(4)(5)v1 v2 v3 v4 v5 v6 v73. 邻接矩阵表示图时,与顶点个数有关,与边的条数无关。

淮海工学院数据结构第二次实验

淮海工学院数据结构第二次实验

淮海工学院计算机科学系实验报告书课程名:《数据结构》题目:线性数据结构实验(栈与队列及其应用)班级:软嵌151学号:2015123352姓名:韩吉线性表算法实现与应用报告要求1目的与要求:1)掌握栈与队列的数据类型描述及特点;2)掌握栈的顺序和链式存储存表示与基本算法的实现;3)掌握队列的链式和循环存储表示与基本操作算法实现;4) 掌握栈与队列在实际问题中的应用和基本编程技巧;5)按照实验题目要求,独立完成实际程序的编写编写、调试和运行,并通过用例的运行过程抓获相关屏面验证程序设计的正确性;7)希望大家过一个丰富多彩的国庆节,抽出一定时间圆满完成实验,并于第6周周二以前按时提交实验报告,逾期按照旷交处理。

2 实验内容或题目(一)必做题:1、实现顺序栈的创建(初始化)、压入(插入)操作(数据、弹出(删除)元素类型自己选取,如整型、字符型等,或参照书上算法选取数据类型),并给出栈的每次操作变化状态;2、实现链栈的创建(初始化)、压入(插入)、弹出(删除)操作(数据元素类型自己选取,如整型、字符型等,或参照书上算法选取数据类型),要求给出栈的操作变化过程;3、实现循环队列的创建、进队、出队等基本操作(数据元素类型自己选取,如整型、字符型等,或参照书上算法选取数据类型),并实时给出队列的操作变化状态;4、实现链式队列的创建、进队、出队等基本操作(数据元素类型自己选取,如整型、字符型等,或参照书上算法选取数据类型),并实时给出队列的操作变化状态;(注意:必做题需用一个主程序实现所有功能)(二)选做题(视自己能力而定,数量不限):任选下列一个或多个栈或队列应用源程序(已经发给学委),并阅读、调试和运行程序,而后给出程序功能分析和实例运行演示;1、实现表达式求值算法程序;2、用递归算法实现汉诺塔问题算法程序;3、使用循环队列实现打印杨辉三角形算法程序。

3 实验步骤与源程序#include<stdio.h>#include<stdlib.h>#include <windows.h>#define TRUE 1#define FALSE 0#define Stack_Size 50#define MAXSIZE 5void mainmenu();/*********************************************//*顺序栈*/typedef struct{int elem[Stack_Size];int top;}SeqStack;/*链栈*/typedef struct node{int data;struct node *next;}LinkStackNode;/*循环队列*/typedef struct{int element[MAXSIZE];int front;int rear;}SeqQueue;/*链式队列*/typedef struct Node{int data;struct Node *next;}LinkQueueNode;typedef struct{LinkQueueNode *front;LinkQueueNode *rear;}LinkQueue;/*********************************************//********************顺序栈************************/ /*构造一个空栈S*/void InitStack(SeqStack *S){S->top = -1;}/*进栈*/int Push(SeqStack *S,int x){if(S->top==(Stack_Size-1))return(FALSE); /*栈已满*/S->top++;S->elem[S->top]=x;return(TRUE);}/*出栈*/int Pop(SeqStack *S,int *x){/* 将栈S的栈顶元素弹出,放到x所指的存储空间中 */if(S->top==-1) /*栈为空*/return(FALSE);else{*x=S->elem[S->top];S->top--; /* 修改栈顶指针 */return(TRUE);}}/*取栈顶元素*/int GetTop(SeqStack *S, int *x){/* 将栈S的栈顶元素弹出,放到x所指的存储空间中,但栈顶指针保持不变 */ if(S->top==-1) /*栈为空*/return(FALSE);else{*x = S->elem[S->top];return(TRUE);}}/**************************************************//********************链栈**************************//*初始化*/void InitStack1(LinkStackNode *top){ //构造一个空栈top = (LinkStackNode *)malloc(sizeof(LinkStackNode));if(!top)printf("OVERFLOW\n");top = NULL;}/*进栈操作。

数据结构第二次

数据结构第二次

《数据结构》实验报告学生姓名学生班级学生学号指导老师一、实验内容单链表的建立、插入以及删除等基本操作二、需求分析(1)建立一个线性表;(2)依次输入数据元素1,2,3,4,5,6,7,8,9,10;(3)删除数据元素5;(4)依次显示当前线性表中的数据元素。

三、概要设计插入删除四、详细设计插入:if((q = (SLNode *)malloc(sizeof(SLNode))) == NULL) exit(1);q->data = x;q->next = p->next; /*给指针q->next赋值*/p->next = q; /*给指针p->next重新赋值*/ return 1;删除:while(p->next != NULL && p->next->next!= NULL && j < i - 1)/*最终让指针p指向数据元素ai-1结点*/{p = p->next;j++;}if(j != i - 1){printf("插入位置参数错!");return 0;}s = p->next; /*指针s指向数据元素ai结点*/*x = s->data; /*把指针s所指结点的数据元素域值赋予x*/p->next = s->next; /*把数据元素ai结点从单链表中删除指*/free(s); /*释放指针s所指结点的内存空间*/return 1;}输出结果五、遇到的问题及解决方法、在调试过程中不懂单链表的性质,经过查找书籍发现,要先交换指针。

六、心得体会通过这个实验课,让我了解了单链表的性质,以及单链表的删除以及插入。

更加深入理解指针。

工大数据结构第二章作业

数据结构与算法上机作业第二章线性表一、选择题1、若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新的元素算法的时间复杂度为。

A. O(log2n)B. O(1)C. O(n)D. O(n2)2、以下关于线性表的说法中,不正确的是。

A. 线性表中的数据元素可以是数字、字符、结构等不同类型B. 线性表中包含的数据元素个数不是任意的C.线性表中的每一个结点都有且只有一个直接前驱和直接后继(单项链表)D.存在这样的线性表:表中各结点都没有直接前驱和直接后继(数组实现)3、在有n个结点的顺序表上做插入、删除结点运算的时间复杂度为。

A. O(1)B. O(n)C. O(n2)D. O(log2n)4、等概率情况下,在有n个结点的顺序表上做插入结点操作,需平均移动的结点数目为。

A. nB. (n-1)/2C. n/2D. (n+1)/2已经有N个点了,再加一个就是N+1个.假设新加的结点插在第i位,那么后面N+1-i个结点都要往后移动.i的取值服从1到N+1的平均分布,即概率是1/(N+1).求期望得N/2,即平均要移动N/2个结点期望有计算公式,这里等于(N+1-1)*1/(N+1)+(N+1-2)*1/(N+1)+(N+1-3)*1/(N+1)+...+(N+1-N-1)*1/(N+1)=N/25、在一个长度为n的顺序存储的线性表中查找值为x的元素时,平均查找长度(及x同元素的平均比较次数,假定查找每个元素的概率都相等)为。

A. nB. n/2C. (n+1)/2D. (n-1)/26、在顺序表中,只要知道,就可以求出任一结点的存储地址。

A. 基地址B. 结点大小C. 向量大小D. 基地址和结点大小7、将两个各有n个元素的有序表归并为一个有序表,其最少的比较次数是。

A. nB. 2n-1C. 2nD. n-18、线性表采用链表存储时其存储地址要求。

A. 必须是连续的B. 部分地址必须是连续的C. 必须是不连续的D. 连续的和不连续的都可以9、下面关于线性表的描述中,错误的是。

数据结构 第一二三阶段在线作业

第一次在线作业单选题 (共40道题)1.(2.5分)程序段FOR i:=n-1 DOWNTO 1 DO FOR j:=1 TO i DO IF A[j]> A[j+1] THEN•C、O(n3)•D、O(n2)我的答案:D 此题得分:2.5分2.(2.5分)若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂•A、O(0)•B、O(1)•C、O(n)•D、O(n2)我的答案:C 此题得分:2.5分•B、待处理数据的初态•C、A和B我的答案:C 此题得分:2.5分•A、算法最终必须由计算机程序实现•B、为解决某问题的算法同为该问题编写的程序含义是相同的•C、算法的可行性是指指令不能有二义性•D、以上几个都是错误的我的答案:D 此题得分:2.5分•A、算法原地工作的含义是指不需要任何额外的辅助空间•B、在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法•C、所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界•D、同一个算法,实现语言的级别越高,执行效率就不定我的答案:A 此题得分:2.5分•A、动态结构、静态结构•B、顺序结构、链式结构•C、线性结构、非线性结构•D、初等结构、构造型结构我的答案:C 此题得分:2.5分•A、广义表•B、二叉树•C、线索树•D、双向链表我的答案:A 此题得分:2.5分10.(2.5分)在下面的程序段中,对x的赋值语句的频度为()FOR i:=1 TO n DO FOR j:=1 T•A、O(2n)•B、O(n)•C、O(n2)•D、O(log2n)我的答案:C 此题得分:2.5分11.(2.5分)以下数据结构中,()是非线性数据结构•A、树•B、字符串•C、队•D、栈我的答案:A 此题得分:2.5分•A、栈•B、队列•C、完全二叉树•D、堆我的答案:C 此题得分:2.5分•A、线性表采用顺序存储,必须占用一片连续的存储单元。

数据结构练习题及部分答案

第一章绪论一.选择题1.数据结构被形式地定义为(K,R),其中K是①的有限集合,R是K上的②的有限集合。

①A.算法B.数据元素C.数据操作D.逻辑结构②A.操作B.映象C.存储D.关系2.算法分析的目的是①,算法分析的两个主要方面是②。

①A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性②A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性3.在计算机存储器内表示时,物理地址和逻辑地址相同并且是连续的,称之为A.逻辑结构B.顺序存储结构C.链表存储结构D.以上都不对4.数据结构中,在逻辑上可以把数据结构分成:( )。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构5.以下属于顺序存储结构优点的是()。

A.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示6.数据结构研究的内容是()。

A.数据的逻辑结构B.数据的存储结构C.建立在相应逻辑结构和存储结构上的算法D.包括以上三个方面7.链式存储的存储结构所占存储空间()。

A.分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针B.只有一部分,存放结点值C.只有一部分,存储表示结点间关系的指针D.分两部分,一部分存放结点值,另一部分存放结点所占单元数8.计算机算法指的是(1),它具备输入,输出和(2)等五个特性。

(1)A. 计算方法 B.排序方法C. 解决问题的有限运算序列D.调度方法(2)A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性C.确定性,有穷性和稳定性D.易读性,稳定性和安全性9.以下关于数据的逻辑结构的叙述中正确的是()。

A.数据的逻辑结构是数据间关系的描述B.数据的逻辑结构反映了数据在计算机中的存储方式C.数据的逻辑结构分为顺序结构和链式结构D.数据的逻辑结构分为静态结构和动态结构10.算法分析的主要任务是()。

西南交大数据结构主观题作业

弘成无锡数字化学习中心批次层次:专升本专业:计算机科学与技术姓名:刘鹏亮学号:第一次作业三、主观题(共3道小题)14.数据的物理结构包括的表示和的表示。

参考答案:线性结构,非线性结构15.数据逻辑结构包括、、和四种,树结构和图结构统称为。

参考答案:集合、线性结构、树、图、非线性结构16.数据结构研究的是和以及它们之间的相互关系,并对于这种结构定义相应的,设计出相应的。

参考答案:逻辑结构,物理结构,运算,算法第二次作业三、主观题(共22道小题)24.向一个长度为n的顺序表中的第i个元素之前插入一个元素时,需要向后移动个元素。

参考答案:n-i+125.在一个长度为n的顺序表中删除第i个元素时,需要向前移动元素。

参考答案:n-i26.在单链表中设置头结点的作用是。

参考答案:简单插入、删除算法27.在单链中要删除某一指定结点,必须找到该结点的结点。

参考答案:直接前驱28.访问单链表中的结点,必须沿着依次进行。

参考答案:指针域29.在双链表中每个结点有两个指针域,一个指向,一个指向。

参考答案:直接前驱结点,直接后继结点30.在链表中,删除最后一个结点的算法时间复杂度为O(1)。

参考答案:双向循环31.访问一个线性表中具有给定值的时间复杂度的数量级是。

参考答案:O(n)32.由n个数据元素生成一个顺序表,若每次都调用插入算法把一个元素插入到表头,则整个算法的时间复杂度插入算法把一个元素插入到表尾,则整个算法的时间复杂度为。

参考答案:O(n) , O(n2)33.在链表中,可以用表尾指针代替表头指针。

参考答案:双向34.在链表中,可以用表尾指针代替表头指针。

参考答案:双向35.根据n个数据元素建立对应的顺序表和单链表存储结构,其算法的时间复杂度最好的情况是,最是。

参考答案:O(n) ,O(n2)36.求线性表的顺序存储和链式存储的长度的算法时间复杂度分别是和。

参考答案:O(1) , O(n)37.在一个带头结点的单链表中,在表头插入或删除与在其他位置插入或删除,其操作过程是否相同?参考答案:相同38.在一个不带头结点的单链表中,在表头插入或删除与在其他位置插入或删除,其操作过程是否相同?。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档