循环模型构建.条件状态临界分析法

ec78173b5cc8420e9336784b2c582779.png

在复习线性表的两个基本操作时自己的感悟, 记录,欢迎探讨

//
//  main.cpp
//  2.1线性表插入删除操作的实验验证
//
//  Created by 郭宸羽 on 24/5/2023.
//

#include <stdlib.h>
#include <stdio.h>
#define MAXSIZE 10

typedef int elemtype;

//1.结构体
typedef struct sql
{
    int length;
    int max_size;
    elemtype data[MAXSIZE];
}sql;

//2.初始化
void InitialSql(sql &sql_0)
{
    sql_0.length = 0;
    sql_0.max_size =MAXSIZE;
    for(int i = 0;i<MAXSIZE;i++)
    {
        sql_0.data[i] = 0;
    }
}

//3.打印显示
void Display(sql sql_0)
{
    for(int i = 0 ;i< sql_0.length;i++)
    {
        printf("%d ",sql_0.data[i]);
    }
    printf("\n");
}

//4.插入
bool Insert(sql &sql_0,int e,int seq)
{
    int idx = seq - 1;//以数组索引为下标
    
    if(idx<0||idx > sql_0.length)
        return false;
    if(sql_0.length >= MAXSIZE)
        return false;
    
    for(int i = sql_0.length; i>= idx+1 ;i++)//此处采用临界状态分析法
    {
        sql_0.data[i] = sql_0.data[i-1];
    }
    sql_0.data[idx]=e;
    sql_0.length++;
    return true;
}

//5.删除
bool Delete(sql &sql_0,int seq)
{
    int idx = seq - 1;
    if(idx < 0 || idx >sql_0.length-1)
    {
        return false;
    }
    else
    {
        for(int i =idx;i<= sql_0.length-2;i++)
        {
            sql_0.data[i] = sql_0.data[i+1];
        }
        sql_0.length--;
    }
    return true;
}

int main()
{
    sql sql_1;
    InitialSql(sql_1);
    Display(sql_1);
    
    for(int s=1;s<11;s++)
        Insert(sql_1, s, s);
    
    Display(sql_1);
    
    for(int t = 0;t < 9;t++)
    {
        Delete(sql_1, 1);
        Display(sql_1);
    }
    
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值