首页 > 其他分享 >删除顺序表L中下标为p(0≤p≤length-1)的元素,成功返回1,否则返回0,并将被删除元素的值赋给e

删除顺序表L中下标为p(0≤p≤length-1)的元素,成功返回1,否则返回0,并将被删除元素的值赋给e

时间:2024-04-22 21:44:42浏览次数:21  
标签:返回 下标 删除 int 元素 length

/********************************************************************************************************
*
*	file name:	Zqh_splist_4.22.2.c
* 	author	 :	keyword2024@163.com
* 	date	 :	2024/04/22
* 	function :	删除顺序表L中下标为p(0≤p≤length-1)的元素,成功返回1,否则返回0,并将被删除元素的值赋给e。
*	note	 :	考研题
*	
*  Copyright (c)  2023-2025   keyword2024@163.com    All right Reserved
* ******************************************************************************************************/

// 优化前
// 定义顺序表结构体
typedef struct {
    int data[MAX_SIZE];
    int length;
} SeqList;

int SeqList_Remove(*L,int p)
{
	//判断顺序表的地址是否有效
	if(NULL == L)
	{
		return 0;
	}

	int e = 0; //变量e,记录待删除元素的值


	//把待删除元素的值备份到变量e中
	e = L[p];

	//把待删除元素的后继元素向前移动一个单位
	for (int i = p; i < length; ++i)
	{
		L[i] = L[i+1];
	}

	return 1;
}

// 优化后
// 删除顺序表L中下标为p的元素,成功返回1,否则返回0,并将被删除元素的值赋给e
int SeqList_Remove(SeqList *L, int p, int *e) {
    if (p < 0 || p >= L->length) {
        return 0; // 删除失败,下标越界
    }

    *e = L->data[p]; // 将被删除元素的值赋给e

    // 将后续元素前移
    for (int i = p; i < L->length - 1; i++) {
        L->data[i] = L->data[i + 1];
    }

    L->length--; // 更新顺序表长度
    return 1; 
}

标签:返回,下标,删除,int,元素,length
From: https://www.cnblogs.com/kencszqh/p/18151614

相关文章

  • 删除链表中(有头节点)一个最小值节点
    删除链表中(有头节点)一个最小值节点/********************************************************************** name : deletelinkedlist* function:删除链表中(有头节点)一个最小值节点* argument:* @Head:链表结构体头头节点地址** retval :调用成功......
  • 单向链表遍历插入和删除
    /***********************************************************************************filename:002_单向链表.cauthor:A13326981379@163.comdate:2024/04/22function:单向链表的遍历插入和删除功能的完善note......
  • 已知一个顺序表L,其中的元素递增有序排列,设计一个算法,插入一个元素x(x为t型)后保持该顺序
    /********************************************************************************************************** filename: Zqh_splist_4.22.1.c* author : keyword2024@163.com* date : 2024/04/22* function: 已知一个顺序表L,其中的元素递增有序排列,设计一个算法......
  • 删除链表中指定结点
    删除链表中指定结点/********************************************************name:DelTargetNode* function:删除链表中指定的结点*argument*@head:链表头结点的地址*@num:需要删除的第num个结点**retva......
  • 设计一个算法删除单链表L(有头节点)中的一个最小值结点
    数据结构链表笔试题:设计一个算法删除单链表L(有头节点)中的一个最小值结点。/****************************************************************** * filename : linkedlist.c* author : cnzycwp@126.com* data : 2024/04/22* function : 删除单链表中的一个最小......
  • 已知一个顺序表L,其中的元素递增有序排列,设计一个算法,插入一个元素x(x为int型)后保持该
    已知一个顺序表L,其中的元素递增有序排列,设计一个算法,插入一个元素x(x为int型)后保持该顺序表仍然递增有序排列(假设插入操作总能成功)。/********************************************************************* 函数名称: SeqListInsert* 函数功能:一个顺序表L,其中的元素......
  • 设计一个算法删除单链表L(有头结点)中的一个最小值结点
    设计一个算法删除单链表L(有头结点)中的一个最小值结点/********************************************************************* 函数名称: LList_delatemin* 函数功能:删除单链表L(有头结点)中的一个最小值结点* 函数参数:* @a:*L*@b:*返回......
  • 假设该链表只给出了头指针 head。在不改变链表的前提下,请设计一个尽可能高效的算法,查
    假设该链表只给出了头指针head。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k(k为正整数)个位置上的结点。若查找成功,算法输出该结点的data值,并返回1;否则,只返回0。/********************************************************************* 函数名称......
  • 删除链表中最小的一个结点
    include<stdio.h>include<stdbool.h>include<stdlib.h>//指的是单向链表中的结点有效数据类型,用户可以根据需要进行修改typedefintDataType_t;//构造链表的结点,链表中所有结点的数据类型应该是相同的typedefstructLinkedList{DataType_tdata;//结点......
  • 删除链表中的尾部结点
    删除链表中的尾部结点/********************************************************name:DelTailNode* function:删除链表尾部结点*argument*@head:链表头结点的地址**retval:成功返回1,失败返回0*author:Dazz*......