数据结构线性表题目
“数据结构线性表题目”相关的资料有哪些?“数据结构线性表题目”相关的范文有哪些?怎么写?下面是小编为您精心整理的“数据结构线性表题目”相关范文大全或资料大全,欢迎大家分享。
数据结构—线性表
第 2 章 线性表
课后习题讲解 1. 填空
⑴ 在顺序表中,等概率情况下,插入和删除一个元素平均需移动( )个元素,具体移动元素的个数与( )和( )有关。
【解答】表长的一半,表长,该元素在表中的位置
⑵ 顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的存储地址是( )。 【解答】108
【分析】第5个元素的存储地址=第1个元素的存储地址+(5-1)×2=108
⑶ 设单链表中指针p 指向结点A,若要删除A的后继结点(假设A存在后继结点),则需修改指针的操作为( )。
【解答】p->next=(p->next)->next
⑷ 单链表中设置头结点的作用是( )。 【解答】为了运算方便
【分析】例如在插入和删除操作时不必对表头的情况进行特殊处理。
⑸ 非空的单循环链表由头指针head指示,则其尾结点(由指针p所指)满足( )。 【解答】p->next=head 【分析】如图2-8所示。
⑹ 在由尾指针rear指示的单循环链表中,在表尾插入一个结点s的操作序列是( );删除开始结点的操作序列为( )。
【解答】s->next =rear->next; rear->next =s; rear =s; q=rear->
数据结构--线性表及其应用
实验一 线性表及其应用
一、实验目的
1.熟悉C语言的上机环境,进一步掌握C语言的结构特点。 2.掌握线性表的顺序存储结构的定义及C语言实现。
3.掌握线性表的链式存储结构——单链表的定义及C语言实现。 4.掌握线性表在顺序存储结构即顺序表中的各种基本操作。 5.掌握线性表在链式存储结构——单链表中的各种基本操作。 二、实验内容
1.顺序线性表的建立、插入及删除。 2.链式线性表的建立、插入及删除。 三、实验步骤
1.建立含n个数据元素的顺序表并输出该表中各元素的值及顺序表的长度。 2.利用前面的实验先建立一个顺序表L={21,23,14,5,56,17,31},然后在第i个位置插入元素68。
3.建立一个带头结点的单链表,结点的值域为整型数据。要求将用户输入的数据按尾插入法来建立相应单链表。 四、实现提示
1.由于C语言的数组类型也有随机存取的特点,一维数组的机内表示就是顺序结构。因此,可用C语言的一维数组实现线性表的顺序存储。
在此,我们利用C语言的结构体类型定义顺序表: #define MAXSIZE 1024
typedef int elemtype; /* 线性表中存放整型元素 */ typedef
2016数据结构作业1-线性表
数据结构作业2016
作业要求:
? 独立完成,上机调试通过后上交
(提交至dlutdswork@163.com)
? 请将本次作业源程序标好题号,压缩成一个压缩文件提交(邮件主题和压
缩文件名格式为: 电1401班***第一次作业) ? 本次作业提交截至日期:3月28日(第五周周一)前
作业1. 线性表
编程作业:
1. 将顺序表逆置,要求用最少的附加空间。 2. 从键盘读入n个整数(升序),请编写算法实现: (1) CreateList():建立带表头结点的单链表; (2) PrintList():显示单链表,(形如:H->10->20->30->40); (3) InsertList():在有序单链表中插入元素x; (4) ReverseList():单链表就地逆置;
(5) DelList():在有序单链表中删除所有值大于mink且小于maxk的元素。
选作:使用文本菜单完成功能选择及执行。
感兴趣的同学可以试试下面的题: 约瑟夫环问题
问题描述:设有编号为1,2,3……n的n个人顺时针方向围坐一圈,每人有一密码(正整数)。开始时给出一报数上限m,从编号为1的人开始报数,报m的人出列;以后将出列者的密码作为新的m,从顺时针方
2016数据结构作业1-线性表
数据结构作业2016
作业要求:
? 独立完成,上机调试通过后上交
(提交至dlutdswork@163.com)
? 请将本次作业源程序标好题号,压缩成一个压缩文件提交(邮件主题和压
缩文件名格式为: 电1401班***第一次作业) ? 本次作业提交截至日期:3月28日(第五周周一)前
作业1. 线性表
编程作业:
1. 将顺序表逆置,要求用最少的附加空间。 2. 从键盘读入n个整数(升序),请编写算法实现: (1) CreateList():建立带表头结点的单链表; (2) PrintList():显示单链表,(形如:H->10->20->30->40); (3) InsertList():在有序单链表中插入元素x; (4) ReverseList():单链表就地逆置;
(5) DelList():在有序单链表中删除所有值大于mink且小于maxk的元素。
选作:使用文本菜单完成功能选择及执行。
感兴趣的同学可以试试下面的题: 约瑟夫环问题
问题描述:设有编号为1,2,3……n的n个人顺时针方向围坐一圈,每人有一密码(正整数)。开始时给出一报数上限m,从编号为1的人开始报数,报m的人出列;以后将出列者的密码作为新的m,从顺时针方
数据结构 线性表 顺序表 源代码C
数据结构 线性表 顺序表 源代码C,实现了新建顺序表,顺序表的插入,删除,查找。合并等功能
#define MAXSIZE 100 //MAXSIZE 为线性表可能的最大长度 #include <stdio.h>
#include <iostream.h>
typedef int ElemType;
typedef struct
{
ElemType data[MAXSIZE];
int length; // length为线性表的长度
} SqList;
SqList l;
//线性表定义
void InitList(SqList &L) //初始化操作,将线性表L置空
{
}
L.length = 0;//g给顺序表长度初始化为0
void CreatSqlist(SqList &L,int n) //建立一个顺序存储的线性表 {
printf("请输入节点");
int i;
for(i=0;i<n;i++)
scanf("%d",&L.data[i]);//读取元素
L.length=n;//表的长度就是元素的个数
fflush(stdin); //清
数据结构 线性表 顺序表 源代码C
数据结构 线性表 顺序表 源代码C,实现了新建顺序表,顺序表的插入,删除,查找。合并等功能
#define MAXSIZE 100 //MAXSIZE 为线性表可能的最大长度 #include <stdio.h>
#include <iostream.h>
typedef int ElemType;
typedef struct
{
ElemType data[MAXSIZE];
int length; // length为线性表的长度
} SqList;
SqList l;
//线性表定义
void InitList(SqList &L) //初始化操作,将线性表L置空
{
}
L.length = 0;//g给顺序表长度初始化为0
void CreatSqlist(SqList &L,int n) //建立一个顺序存储的线性表 {
printf("请输入节点");
int i;
for(i=0;i<n;i++)
scanf("%d",&L.data[i]);//读取元素
L.length=n;//表的长度就是元素的个数
fflush(stdin); //清
数据结构第二章线性表习题
02 线性表
【单选题】
1. 下列不属线性结构特点的是(C)。 A、有且仅有一个数据元素无直接前驱 B、有且仅有一个数据元素无直接后继
C、有且仅有一个数据元素既无直接前驱又无直接后继
D、大多数据元素有且仅有一个直接前驱,有且仅有一个直接后继
2. 线性表是具有n个(C)的有限序列。
A、信息项 B、字符 C、数据元素 D、数据项
3. 线性表的逻辑顺序与存储顺序总是一致的,这种说法(B)。 A、正确 B、不正确
4. 在顺序表中,数据元素e1与其直接后继e2在存储位置上(A)。 A、必相邻 B、必不相邻 C、可相邻可不相邻
5. 在长为n的顺序表中删除一个数据元素,平均需移动(D)个数据元素。 A、n B、n-1 C、n/2 D、(n-1)/2
6. 在长为n的顺序表中插入一个数据元素,平均需移动(C)个数据元素。 A、n B、n-1 C、n/2 D、(n-1)/2
7. 单链表是一种(B)存取的存储结构 A、随机 B、顺序 C、索引 D、连续
8. 以下属于顺序存储结构优点的是(A)。
A、存储密度大 B、插入运算方便 C、删除运算方便 D、可方便地用于各种逻辑结构的存储表示
9. 以下属单链表优点的是(C)。
A、顺
数据结构练习第二章 线性表
数据结构练习 第二章 线性表
一、选择题
1. 下面关于线性表的叙述错误的是( )。
A.线性表采用顺序存储必须占用一片连续的存储空间 B. 线性表采用链式存储不必占用一片连续的存储空间 C. 线性表采用链式存储便于插入和删除操作的实现 D. 线性表采用顺序存储便于插入和删除操作的实现 2. 设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为( )。
A.q=p->next;p->data=q->data;p->next=q->next;free(q); B. q=p->next;q->data=p->data;p->next=q->next;free(q); C. q=p->next;p->next=q->next;free(q); D. q=p->next;p->data=q->data;free(q);
3. 设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为( )。
A. O(n) B. O(nlog2n) C. O(1) D. O(n2)
4.设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为
数据结构实验一 线性表的基本操作
实验一 线性表的基本操作
一、实验目的
1、理解线形表的定义、特征和相关概念; 2、理解线形表的顺序存储结构; 3、掌握上机调试线性表的基本方法。 二、实验条件
1、PC机
2、软件Visual C++ 三、实验原理
线性表的顺序存储结构是用一组地址连续的存储单元依次存放线性表中的元素。其实现手段是数组类型。由于内存中的元素存放顺序与逻辑上的顺序相同,所以元素的地址就体现了逻辑关系,即物理相邻=逻辑相邻;在插入或者删除某一个元素时,其后的所有元素也要做相应的后移或者前移,即有可能要移动大量元素。 四、实验内容
1、利用两个线形表LA和LB分别表示两个集合A和B,现要求一个新的集合A=A∪B,用顺序表实现;
2、对给定的两个集合能够进行合并,并给出合并结果; 五、算法分析
void union(List &La, List Lb){ La_len = ListLength(La); Lb_len = ListLength(Lb); for (i=1; i<=Lb_len; i++){ GetElem(Lb,i, e);
If(!LocateElem(La,e,equal)) ListInsert(La, ++L
数据结构与算法(线性表)练习题
三、写一个算法合并两个已排序的线性表。(用两种方法:数组表示的线性表(顺序表)和指针表示的线性表(链表)) 要求:1、定义线性表节点的结构,并定义节点的型和位置的型。 2、定义线性表的基本操作 3、在1,2的基础上,完成本题。 4、在main函数中进行测试:先构建两个有序的线性表,然后合并这两个线性表。
四、已知一个单向链表,试给出复制该链表的算法。
要求:1、定义线性表的节点的结构以及节点的型和位置的型。 2、定义线性表的基本操作
3、在1,2的基础上,完成本题。 4、在main函数中进行测试:先构建一个线性表,并定义一个空线性表,然后进行复制。
五、写出从一个带表头的单链表中删除其值等于给定值x的结点的算法函数: int delete(LIST &L, int x);如果x在该链表中,则删除对应结点,并返回其在链表中的位置(逻辑位置,第一个结点的逻辑位置为1),否则返回-1。 要求:1、定义线性表的节点的结构以及节点的型和位置的型。
2、定义线性表的基本操作
3、在1,2的基础上,完成本题。
4、在main函数中进行