数据结构(四):(顺序表)设计算法删除所有数字字符

数据结构,顺序,设计,算法,删除,所有,数字,字符 · 浏览次数 : 175

小编点评

顺序表是一种线性数据结构,它是以数组的形式存储数据的线性表。 顺序表的结构如下: - 包含一个数组 `a`,存储数据的存储空间。 - 包含一个整数 `n`,存储数据的长度。 顺序表是一种链式结构,其元素之间通过指针相连接。 顺序表的存储顺序是随机的,可以通过下标直接拿到数据。 顺序表是一种高效的数据结构,因为它可以快速找到数据中的特定元素。 顺序表的删除操作也是高效的,因为可以利用指针快速找到要删除的元素的起始位置。 顺序表是一种非常实用的数据结构,在各种编程应用中都有广泛的应用。

正文

好家伙,写作业

 

什么是顺序表:

顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、

使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,

采用顺序存储结构的线性表通常称为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。

                                                          ----来自百度百科

 

 

 

 

 

 

 

按我的理解捋一遍:这就是个最简单的数据储存结构,简单到他的结构只有两部分:

typedef struct{
    char a[maxsize];
    int n;
}sqlist; 

储存数据的数组和储存长度的一个int值,它的储存顺序是随机(可以通过下标直接拿到数据,并非链式结构)

 

 

上题目

1.一个顺序表中存放字符(只有数字字符和英文字符),编写算法删除所有的数字字符

 

我们想想,

第一步,用一个顺序表储存这一串字符

第二步,随后在该顺序表中逐个进行判断,若发现数字字符,则将该字符用冒泡法放到最后一位,并记录发现数字字符的个数

第三步,按照数字字符的个数n,去删除顺序表对应的后n位

#include<iostream>
using namespace std;
const int maxsize=100;
typedef struct{
    char a[maxsize];
    int n;
}sqlist; 
int main()
{
    sqlist sqlist_1;
    int i,j,s=0;
    cout<<"输入顺序表的长度"<<endl;
    cin>>sqlist_1.n;
    cout<<"依次输入字符"<<endl;
    for(i=0;i<sqlist_1.n;i++)
    {
        cin>>sqlist_1.a[i];  //顺序表赋值 
    } 
for(i=0;i<sqlist_1.n;i++) { if(sqlist_1.a[i]>'0'&&sqlist_1.a[i]<='9') { for(j=i;j<(sqlist_1.n-1);j++) { sqlist_1.a[j]=sqlist_1.a[j+1]; //将数子字符移到后面 if(j==i) { s++; //记录"数字"字符出现的次数 } } i--; //用于判断转移数字字符后,原数字字符的位置的现字符是否还为数字字符 } } sqlist_1.n=sqlist_1.n-s; cout<<"删除数字字符后的顺序表"<<endl; //输出删除数字字符后的顺序表 for(i=0;i<sqlist_1.n;i++) { cout<<sqlist_1.a[i]<<"\t"; } cout<<endl; return 0; }

 

输入输出样式:

 

 

 

与数据结构(四):(顺序表)设计算法删除所有数字字符相似的内容:

数据结构(四):(顺序表)设计算法删除所有数字字符

好家伙,写作业 什么是顺序表: 顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、 使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系, 采用顺序存

数据结构作业(五):直接插入排序 和 归并排序

好家伙,写作业 1.直接插入排序 这是个非常简单的排序 将一串数分为有序区和无序区 然后将无序区的数一个个按照正确的顺序放到有序区 2.归并排序 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。 若将两个有序表合并成一个有序表,称为二路归并。 其中我们要解决的一个

行为型:迭代器模式

定义 迭代器模式提供一种方法按顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。迭代器模式是目的性极强的模式,它主要是用来解决遍历问题。 es6 中的迭代器 JS原生的集合类型数据结构,有Array(数组)和Object(对象),在ES6中,又新增了Map和Set。四种数据结构各自有着自

[转帖]【TiDB】快速起步

1. 存储引擎的的功能 提供数据存储接口并持久化存储数据 2. LSM-tree 的特性 LSM-tree 结构本质上是一个用空间置换写入延迟,用顺序写入替换随机写入的数据结构 3. 数据库技术的发展 20世纪80年代,关系数据库发展2000年左右,NoSQL 发展2010年左右,NewSQL 发展

iceoryx源码阅读(四)——共享内存通信(二)

目录1 队列数据结构2 共享内存获取2.1 PublisherImpl::loan2.2 PublisherImpl::loanSample2.3 PublisherPortUser::tryAllocateChunk2.4 ChunkSender::tryAllocate3 消息发送逻辑3.1 P

[转帖]redis数据结构详解之Hash(四)

https://www.cnblogs.com/Alex80/p/5320091.html 序言 Hash数据结构累似c#中的dictionary,大家对数组应该比较了解,数组是通过索引快速定位到指定元素的,无论是访问数组的第一个元素还是最后一个元素,所耗费的时间都是一样的,但是数组中的索引却没有实

【转帖】《MySQL高级篇》四、索引的存储结构

1. 为什么使用索引 假如给数据使用 二叉树 这样的数据结构进行存储,如下图所示 2、索引及其优缺点 2.1 索引概述 2.2 优点 类似大学图书馆建书目索引,提高数据检索的效率,降低 数据库的 IO 成本 这也是创建索引的主要的原因。通过创建唯一索引,可以保证数据库表中每一行 数据的唯一性 (唯一

从零做软件开发项目系列之四——数据库设计

前言 在对软件进行设计的过程中,数据库的设计是一项重要的内容,软件中主要的处理对象就是各类业务数据,通过对业务数据的处理,实现各种功能。我们经常说的,写程序,说到底就是增删改查,而增删改查的对象就是各种数据。数据都存储在数据库中,其重要性不言而喻,对于数据库的设计也是软件设计的一个重要基础。 1 数

quarkus数据库篇之四:本地缓存

如何将数据库查询结果缓存在当前进程中,提升下一次查询的速度?

Jmeter学习之四_kingbaseV8R6数据库的简单验证

# Jmeter学习之四_kingbaseV8R6数据库的简单验证 ## 背景 ``` 周一没去报道, 因为我忘记体检了... 继续在家进行学习提高自己. jmeter周末时开始看的. 今天想着继续研究一下对数据库的处理 突然发现人大金仓的官方csdn有一个文档, 所以想着偷师,并且总结学习一下.