当前位置:网站首页>6-2 sequence table operation set
6-2 sequence table operation set
2022-07-05 06:36:00 【timingzj】
6-2 Sequence table operation set
This problem requires the implementation of the operation set of the sequence table .
Function interface definition :
List MakeEmpty();
Position Find( List L, ElementType X );
bool Insert( List L, ElementType X, Position P );
bool Delete( List L, Position P );
among List The structure is defined as follows :
typedef int Position;
typedef struct LNode *List;
struct LNode {
ElementType Data[MAXSIZE];
Position Last; /* Save the position of the last element in the linear table */
};
Each operation function is defined as :
List MakeEmpty(): Create and return an empty linear table ;
Position Find( List L, ElementType X ): Return to the linear table X The location of . If not, return ERROR;
bool Insert( List L, ElementType X, Position P ): take X Insert in position P And back to true. If the space is full , Then print “FULL” And back to false; If parameters P Point to an illegal location , Then print “ILLEGAL POSITION” And back to false;
bool Delete( List L, Position P ): Place P Delete the element and return true. If parameter P Point to an illegal location , Then print “POSITION P EMPTY”( among P Is the parameter value ) And back to false.
Sample referee test procedure :
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 5
#define ERROR -1
typedef enum {
false, true} bool;
typedef int ElementType;
typedef int Position;
typedef struct LNode *List;
struct LNode {
ElementType Data[MAXSIZE];
Position Last; /* Save the position of the last element in the linear table */
};
List MakeEmpty();
Position Find( List L, ElementType X );
bool Insert( List L, ElementType X, Position P );
bool Delete( List L, Position P );
int main()
{
List L;
ElementType X;
Position P;
int N;
L = MakeEmpty();
scanf("%d", &N);
while ( N-- ) {
scanf("%d", &X);
if ( Insert(L, X, 0)==false )
printf(" Insertion Error: %d is not in.\n", X);
}
scanf("%d", &N);
while ( N-- ) {
scanf("%d", &X);
P = Find(L, X);
if ( P == ERROR )
printf("Finding Error: %d is not in.\n", X);
else
printf("%d is at position %d.\n", X, P);
}
scanf("%d", &N);
while ( N-- ) {
scanf("%d", &P);
if ( Delete(L, P)==false )
printf(" Deletion Error.\n");
if ( Insert(L, 0, P)==false )
printf(" Insertion Error: 0 is not in.\n");
}
return 0;
}
/* Your code will be embedded here */
sample input :
6
1 2 3 4 5 6
3
6 5 1
2
-1 6
sample output :
FULL Insertion Error: 6 is not in.
Finding Error: 6 is not in.
5 is at position 0.
1 is at position 4.
POSITION -1 EMPTY Deletion Error.
FULL Insertion Error: 0 is not in.
POSITION 6 EMPTY Deletion Error.
FULL Insertion Error: 0 is not in.
Code :
//List MakeEmpty(): Create and return an empty linear table ;
List MakeEmpty()
{
List L = (List)malloc(sizeof(struct LNode));
L->Last = -1;
return L;
}
//Position Find( List L, ElementType X ): Return to the linear table X The location of .
// If not, return ERROR;
Position Find( List L, ElementType X )
{
int i = 0;
for(i = 0; i <= L->Last; i++)
{
if(L->Data[i] == X)
return i;
}
return ERROR;
}
//bool Insert( List L, ElementType X, Position P ):
// take X Insert in position P And back to true.
// If the space is full , Then print “FULL” And back to false;
// If parameters P Point to an illegal location , Then print “ILLEGAL POSITION” And back to false;
bool Insert( List L, ElementType X, Position P )
{
// Space full
if(L->Last == MAXSIZE-1)
{
printf("FULL");
return false;
}
//P Point to an illegal location ,P The range pointed :[0, L->Last],P Insert range of :[0, L->Last+1]
if(P < 0 || P > (L->Last+1))
{
printf("ILLEGAL POSITION");
return false;
}
// Insert ,P The following elements are collectively shifted to the right
int end = L->Last;
while(end >= P)
{
L->Data[end+1] = L->Data[end];
end--;
}
L->Data[P] = X;
L->Last++;
return true;
}
//bool Delete( List L, Position P ):
// Place P Delete the element and return true.
// If parameter P Point to an illegal location , Then print “POSITION P EMPTY”( among P Is the parameter value )
// And back to false.
bool Delete( List L, Position P )
{
//P Scope of deletion :[0, L->Last]
if(P < 0 || P > L->Last)
{
printf("POSITION %d EMPTY", P);
return false;
}
// Delete
int start = P;
while(P < L->Last)
{
L->Data[start] = L->Data[start+1];
start++;
}
L->Last--;
return true;
}
边栏推荐
- C job interview - casting and comparing - C job interview - casting and comparing
- 高斯消元 AcWing 884. 高斯消元解异或线性方程组
- 2048 project realization
- 2. Addition and management of Oracle data files
- NotImplementedError: Cannot convert a symbolic Tensor (yolo_boxes_0/meshgrid/Size_1:0) to a numpy ar
- Nested method, calculation attribute is not applicable, use methods
- 2022/6/29-日报
- 博弈论 AcWing 891. Nim游戏
- ‘mongoexport‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- ollvm编译出现的问题纪录
猜你喜欢
![[moviepy] unable to find a solution for exe](/img/0a/4841f53cedc1333654b9443e406f4c.jpg)
[moviepy] unable to find a solution for exe

1. Create Oracle database manually

Single chip computer engineering experience - layered idea

高斯消元 AcWing 884. 高斯消元解异或线性方程组

There are three kinds of SQL connections: internal connection, external connection and cross connection

Some classic recursion problems

2.Oracle-数据文件的添加及管理

Financial risk control practice -- feature derivation based on time series

容斥原理 AcWing 890. 能被整除的数

区间问题 AcWing 906. 区间分组
随机推荐
11-gorm-v2-03-basic query
C Primer Plus Chapter 15 (bit operation)
La redirection de l'applet Wechat ne déclenche pas onload
Modnet matting model reproduction
TypeScript入门
vsCode创建自己的代码模板
FFmpeg build下载(包含old version)
confidential! Netease employee data analysis internal training course, white whoring! (attach a data package worth 399 yuan)
NVM Downloading npm version 6.7.0... Error
How to correctly ask questions in CSDN Q & A
Stack acwing 3302 Expression evaluation
2048 project realization
什么是套接字?Socket基本介绍
Gaussian elimination acwing 884 Gauss elimination for solving XOR linear equations
how to understand the “model independent.“
中国剩余定理 AcWing 204. 表达整数的奇怪方式
Presentation of attribute value of an item
Time is fast, please do more meaningful things
Game theory acwing 893 Set Nim game
Single chip computer engineering experience - layered idea