地区考研辅导班

《2023数据规划考研温习辅导(王道)》——关于有些操练题的一些思…

一、选择题

1.次序表(逻辑上相邻的元素物理上也相邻),其占用的存储空间与元素存放次序无关

利益
缺陷

①存储密度大
①刺进删去操作比照凌乱(时刻凌乱度均为o(n))

②便利随机存取
②改动容量不便利,简略发生碎片

2.在一个长度为n的次序表中删去第i(1<=i<=n)个元素,需要向前移动n-i个元素

解析:删去第i的元素,恰当于第i个元素之后的一切元素都要前移,显着第i个元素之后的元素个数是(n-i)个

3.若长度为n的非空线性表选用次序存储规划,在表的第i个方位刺进一个元素,则i的合法值是1<=i<n+1

解析:i≥1,很简略了解;之所以i≤n+1,是因为i有可以刺进在最终一个元素的下一个方位,即n+1

二、归纳使用题

直接上code(自己运用的visual stdio2021)

//这一段代码写好之后可将其放在头文件里,命名为function.h
#define _crt_secure_no_warnings //处置vs2021的scanf编译报错疑问
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define maxsize 50
typedef int elemtype;
typedef struct {
elemtype data[maxsize]; //用静态数组完成线性表
int length; //界说线性表其时长度
}sqlist;
//初始化次序表
bool initlist(sqlist& l)
{
for (int i = 0; i < maxsize; i++)
l.data[i] = 0;
l.length = 0;
return true;
}
//向次序表中刺进元素
bool insertlist(sqlist& l, int i, elemtype e)
{
if (i<1 || i>maxsize)
return false;
if (i > l.length + 1)
return false;
for (int j = l.length; j > i; j–)
{
l.data[j] = l.data[j – 1];
}
l.data[i – 1] = e;
l.length++;
return true;
}
//删去次序表中的元素并带回
bool deletelist(sqlist& l, int i, elemtype& e)
{
if (i<1 || i>maxsize)
retu

rn false;
if (i > l.length)
return false;
e = l.data[i – 1];
for (int j = i; j < l.length; j++)
{
l.data[j – 1] = l.data[j];
}
l.length–;
return true;
}
//打印次序表中元素
void printlist(sqlist l)
{
for (int j = 0; j < l.length; j++)
{
printf(“%3d”, l.data[j]);
}
printf(“\n”);
}

#pragma once//这个东西是编译器自个生成的,暂时不理解其用处

你可能也会喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注