线性表查找第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 或调试 >“开始调试”菜单
相关文章
|
存储
顺序表oj--移除元素&&删除重复项&&合并两个有序数组
顺序表oj--移除元素&&删除重复项&&合并两个有序数组
104 0
|
7月前
|
存储
三种方法实现获取链表中的倒数第n个元素
三种方法实现获取链表中的倒数第n个元素
69 0
|
7月前
|
存储 Java
数据结构:图文详解顺序表的各种操作(新增元素,查找元素,删除元素,给指定位置元素赋值)
数据结构:图文详解顺序表的各种操作(新增元素,查找元素,删除元素,给指定位置元素赋值)
245 0
|
存储 机器学习/深度学习 缓存
链表和有序二叉树插入元素时真的比数组快吗?
公司有位C++标准委员会的顾问大佬,一年会有几次视频讲座,分享一些编程要点或者经验。很多时候都是C++很基础的方面,但是他的讲解视频真的很深入浅出,有时候会“打破”一些理所应当的观点,这篇文章就是让我觉得很有趣,并且意想不到的地方,在这里分享一下。
链表和有序二叉树插入元素时真的比数组快吗?
|
算法 Java
优雅的删除链表元素
大家好,我是王有志。今天我们尝试使用多种方法,“优雅”的实现链表的删除方法。
154 0
优雅的删除链表元素
单链表的按位查找和按值查找
单链表的按位查找和按值查找的代码实现讲解
428 0
|
存储
删除链表中相同的元素
链表是一种常见的数据结构,他是线性表的一种,他的典型特征就是数据结点之间通过指针相连,链表主要适合存储插入、删除操作比较频繁的数据。这篇文章总结如何删除链表中相同的元素。
189 0
删除链表中相同的元素
力扣27.移除元素【顺序表】
力扣27.移除元素【顺序表】
108 0
力扣27.移除元素【顺序表】
|
Perl
找链表中间元素
#include <iostream> #include <string> using namespace std; typedef struct LNode { int date; //节点的数据域 struct LNode *next; //节点的指针域 }LNode,*LinkList; // LinkList 为指向结构体LNode的指针类型 LinkList findmiddle(LinkList L) { LinkList p ,q; p = L; //p为快指针,初始时指向L q = L; //q为慢指针,初试时
77 0