当前位置:网站首页>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;
}
边栏推荐
- FFmpeg build下载(包含old version)
- Chinese remainder theorem acwing 204 Strange way of expressing integers
- The “mode“ argument must be integer. Received an instance of Object
- Adg5412fbruz-rl7 applies dual power analog switch and multiplexer IC
- How to make water ripple effect? This wave of water ripple effect pulls full of retro feeling
- 11-gorm-v2-03-basic query
- LSA Type Explanation - lsa-1 [type 1 LSA - router LSA] detailed explanation
- H5 module suspension drag effect
- Gauss Cancellation acwing 884. Solution d'un système d'équations Xor linéaires par élimination gaussienne
- Ffmpeg build download (including old version)
猜你喜欢
how to understand the “model independent.“
1. Create Oracle database manually
LeetCode-61
博弈论 AcWing 894. 拆分-Nim游戏
Vscode creates its own code template
AE tutorial - path growth animation
Install opencv -- CONDA to establish a virtual environment and add the kernel of this environment in jupyter
20220213-CTF MISC-a_ good_ Idea (use of stegsolve tool) -2017_ Dating_ in_ Singapore
2.Oracle-数据文件的添加及管理
‘mongoexport‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
随机推荐
2048项目实现
中国剩余定理 AcWing 204. 表达整数的奇怪方式
Paper reading report
our solution
Vant Weapp SwipeCell设置多个按钮
PR automatically moves forward after deleting clips
Find the combination number acwing 888 Find the combination number IV
Find the combination number acwing 887 Find combination number III
Redis-01.初识Redis
vsCode创建自己的代码模板
高斯消元 AcWing 884. 高斯消元解异或线性方程组
C job interview - casting and comparing - C job interview - casting and comparing
H5 embedded app adapts to dark mode
Vscode creates its own code template
H5 模块悬浮拖动效果
LSA Type Explanation - detailed explanation of lsa-2 (type II LSA network LSA) and lsa-3 (type III LSA network Summary LSA)
Client use of Argo CD installation
Applicable to Net free barcode API [off] - free barcode API for NET [closed]
高斯消元 AcWing 884. 高斯消元解异或線性方程組
如何正确在CSDN问答进行提问