当前位置:网站首页>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;
}
边栏推荐
- Inclusion exclusion principle acwing 890 Divisible number
- LeetCode-54
- 2022-5-第四周日报
- 【高德地图POI踩坑】AMap.PlaceSearch无法使用
- H5内嵌App适配暗黑模式
- [learning] database: several cases of index failure
- LSA Type Explanation - detailed explanation of lsa-2 (type II LSA network LSA) and lsa-3 (type III LSA network Summary LSA)
- Knapsack problem acwing 9 Group knapsack problem
- Relevant information of National Natural Science Foundation of China
- Financial risk control practice -- feature derivation based on time series
猜你喜欢

Use ffmpeg to rotate, flip up and down, and flip horizontally

3.Oracle-控制文件的管理

Redis-01. First meet redis

Find the combination number acwing 887 Find combination number III

5. Oracle tablespace

What is linting

区间问题 AcWing 906. 区间分组

Chapter 6 relational database theory

Idea debug failed

The “mode“ argument must be integer. Received an instance of Object
随机推荐
How to correctly ask questions in CSDN Q & A
Operator priority, one catch, no doubt
Chapter 6 relational database theory
MPLS experiment
中国剩余定理 AcWing 204. 表达整数的奇怪方式
Applicable to Net free barcode API [off] - free barcode API for NET [closed]
[2020]GRAF: Generative Radiance Fields for 3D-Aware Image Synthesis
MySQL (UDF authorization)
2048 project realization
Redis-02.Redis命令
Bit of MySQL_ OR、BIT_ Count function
H5 embedded app adapts to dark mode
The route of wechat applet jumps again without triggering onload
How to make water ripple effect? This wave of water ripple effect pulls full of retro feeling
Rehabilitation type force deduction brush question notes D1
[Chongqing Guangdong education] National Open University 2018 autumn 0702-22t contemporary Chinese political system reference questions
Relevant information of National Natural Science Foundation of China
Alibaba established the enterprise digital intelligence service company "Lingyang" to focus on enterprise digital growth
[wustctf2020] plain_ WP
Vscode creates its own code template