线性表删除第i个元素

简介: 线性表删除第i个元素
// 删除.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//群:970353786
#include <stdio.h>
#include <malloc.h>
#define Maxsize 100
typedef int ElemType;//定义别名  
typedef struct Sqlist
{
  ElemType data[Maxsize];
  int len;//当前长度 
};
//初始化线性表
void Initlist(Sqlist& sq)
{
  sq.len = 0;
}
//求线性表长度
int ListLength(Sqlist sq)
{
  return(sq.len);
}
//删除第i个元素
int ListDelete(Sqlist& sq, int i)
{
  int j;
  if (i<1 || i>sq.len) return 0;//i不合法
  for (j = i; j < sq.len; j++)
  {
    sq.data[j - 1] = sq.data[j];//删除元素后,第i个后面的全部元素全部左移
  }
  sq.len--;//表长就减1
  return 0;
}
int main()
{
  Sqlist sqa;
  int i, j, n, m, s;
  int num;
  printf_s("请输入你要输入多少个数据:");
  scanf_s("%d", &num);
  for (i = 1; i <= num; i++)
  {
    printf_s("请输入链表第 % d个数据:", i);
    scanf_s("%d", &sqa.data[i]);
  }
  sqa.len = num;
  printf_s("删除第几个元素?\n");
  scanf_s("%d", &n);
  if (n > sqa.len)
  {
    printf_s("已经超出范围,无法删除\n");
  }
  else
  {
    ListDelete(sqa, n);
    printf_s("删除的数据为:%d\t", sqa.data[n]);
    printf_s("由于删除一个元素,长度变为:%d\n", ListLength(sqa));
    //printf("%d", sqa.len);//也可以直接打印长度不调用函数
  }
}
// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单
相关文章
|
2月前
【LeetCode 06】203.移除链表元素
【LeetCode 06】203.移除链表元素
31 0
|
6月前
|
C++
C++数组中插入元素。
C++数组中插入元素。
LeetCode | 203. 移除链表元素
LeetCode | 203. 移除链表元素
|
7月前
leetcode:移除链表元素
leetcode:移除链表元素
|
7月前
|
存储 Java
数据结构:图文详解顺序表的各种操作(新增元素,查找元素,删除元素,给指定位置元素赋值)
数据结构:图文详解顺序表的各种操作(新增元素,查找元素,删除元素,给指定位置元素赋值)
245 0
203.移除链表元素(LeetCode)
203.移除链表元素(LeetCode)
删除顺序表中指定值的所有元素
顺序表是一种使用数组实现的数据结构。删除顺序表中指定值的所有元素,可以按照以下步骤进行操作:
300 1
|
算法 Java
优雅的删除链表元素
大家好,我是王有志。今天我们尝试使用多种方法,“优雅”的实现链表的删除方法。
155 0
优雅的删除链表元素
【leetCode203】移除链表元素
【leetCode203】移除链表元素
|
存储
删除链表中相同的元素
链表是一种常见的数据结构,他是线性表的一种,他的典型特征就是数据结点之间通过指针相连,链表主要适合存储插入、删除操作比较频繁的数据。这篇文章总结如何删除链表中相同的元素。
189 0
删除链表中相同的元素