线性表运算

/*线性表是n个元素的有序集合(n≥0),n是线性表中元素的个数,称为线性表的长度
。可以用一组地址连续的存储单元依次存储线性表中元素,采用这种存储方式的线性表称为顺序表。
请在顺序表上实现运算,实现顺序表的逆置,删除表中所有元素值等于x的元素。
输入
三组数据,顺序表元素类型分别为整型、字符型和实型。
每一组第一行给出元素数目n(0<n≤1000),第二行给出元素数值,第三行给出待删除的元素。
输出
三组数据,每一组第一行给出逆置后的顺序表元素,第二行是在此基础上删除指定元素后的顺序表元素
,每一个输出元素后均有一个空格,如果元素全部被删除,那么输出一个空行。
样例输入
8
1 2 3 7 5 6 7 8
7
3
a c m
h
4
1.2 3.4 5.6 7.8
1.2
样例输出
8 7 6 5 7 3 2 1
8 6 5 3 2 1
m c a
m c a
7.8 5.6 3.4 1.2
7.8 5.6 3.4
*/
#include<stdio.h>
#include<string.h>
#define N 1001
/*
void inputint(int a[]);
void inputchar(char c[]);
void inputdouble(double f[]);
void outputint(int a[],int n,int x);
void outputchar(char c[],int m,char r);
void outputdouble(double f[]),int p,double q);
*/
int main()
{
int a[N];
char c[N];
double f[N];
int n,i,x,m,p;
double t;
char r;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&x);
for(i=n-1;i>=0;i--)
printf("%d ",a[i]);
printf("\n");
for(i=n-1;i>=0;i--)
{
if(a[i]==x)
continue;
else
printf("%d ",a[i]);
}
printf("\n");
scanf("%d",&m);
for(i=0;i<m;i++)
c[i]=getchar();
scanf("%c",&r);
for(i=m-1;i>=0;i--)
printf("%c ",c[i]);
printf("\n");
for(i=m-1;i>=0;i--)
{
if(c[i]==r)
continue;
else
printf("%c ",c[i]);
}
printf("\n");
scanf("%d",&p);
for(i=0;i<p;i++)
scanf("%lf",&f[i]);
scanf("%lf",&t);
for(i=p-1;i>=0;i--)
printf("%lf ",f[i]);
printf("\n");
for(i=p-1;i>=0;i--)
{
if((a[i]-t)<1E-6)
continue;
else
printf("%lf ",a[i]);
}
return 0;
}

还没有学习c++;以后再补充

时间: 2024-10-12 19:26:02

线性表运算的相关文章

线性表运算--顺序存储结构实现

对于线性表我们应掌握如下要点: 1.  掌握线性表的结构特点:顺序存储和链式存储. 2.  掌握线性表的基本操作:初始化,插入,删除,查找,判空,求线性表长度等运算在顺序存储结构和链式存储结构上的实现. 顺序存储具有随机访问的特点,而链式存储具有顺序访问的特点. 对于不同的应用我们应当选择不同的结构. 顺序结构实现源代码如下: 1 HList.h //线性表头文件定义 2 //数据结构头文件在定义, 3 //链表的头文件 4 #ifndef _HLIST_H_ 5 #define _HLIST_

线性表运算--链式存储结构模板类实现

采用C++模板类实现 1 #ifndef _List_H_ 2 #define _List_H_ 3 #include <iostream> 4 #include "stdlib.h" 5 template <class T> 6 class CNode 7 { 8 public: 9 T data; 10 CNode<T> *next; 11 }; 12 template <class T> 13 class CLink 14 { 15

2-7-集合运算(A-B)∪(B-A)-线性表-第2章-《数据结构》课本源码-严蔚敏吴伟民版

课本源码部分 第2章  线性表 - 集合运算(A-B)∪(B-A) ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接??? <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解析使用说明        课本源码合辑  链接??? <数据结构>课本源码合辑        习题集全解析  链接??? <数据结构题集>习题解析合辑        本源码引入的文件  链接? Scanf.c.StaticLinkedList.c    

数据导论——线性表

线性表是一种线性结构,由n个数据元素组成的又穷序列,数据元素又称为节点,线性表中的每个数据元素的含义,在不同的应用中各不相同,但在同一个线性表中的数据元素具有相同的特性. 下面的图总结了第二章的主要内容,用于总结和回想,巩固学习: 线性表的基本运算包括:初始化.求表长.读表元素.定位.插入.删除等基本运算,不同的存储结构实现细节可能不同. 在线性表的存储方式有顺序存储和链式存储. 顺序存储的存储方式是最简单的,逻辑顺序对应于存储顺序,数组就是顺序表的表现之一.顺序存储的运算包括插入.删除和定位,

数据结构读书笔记----------第二章 线性表

2.1 线性表的定义 线性结构的特点是数据元素之间是一种线性关系,在一个线性表中,数据元素的类型是相同的,或者说线性表是由同一类型的数据元素构成的线性结构.综上所诉:线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列. 2.2 线性表的顺序存储以及运算实现 //线性顺序存储的定义 #define Maxsize 100 typedef int DataType; typedef struct { DataType data[Maxsize]; int last; //用来记录线性表中最

数据结构期末复习第二章线性表

第二章:线性表 1.线性结构的基本特征答:线性结构是若干数据元素构成的有序(次序)集① 集合中必存在唯一的一个“第一元素”:② 集合中必存在唯一的一个 “最后元素”:③ 除第一元素之外,均有 唯一的前驱:④ 除最后元素之外,均有 唯一的后继. 2.线性表的顺序存储结构和链式存储结构分别是______.(  D )   A. 顺序存取的存储结构.顺序存取的存储结构  B. 顺序存取的存储结构.随机存取的存储结构   C. 随机存取的存储结构.随机存取的存储结构  D. 随机存取的存储结构.顺序存取

线性表的链式存储和实现

上篇讲了顺序表,这篇接着讲讲链式表的实现. List.java 1 package com.yeyan.linklist; 2 3 /** 4 * 线性表接口 5 * @author yeyan 6 * @date 2014-12-07 7 * * API: 8 * isEmpty(): 判断该线性表是否为空 9 * length(): 表长 10 * get(int index): 获得第index的元素 11 * add(int index, T element): 在index位置之后添加

线性表之顺序表奇偶调整和单链表就地逆置

线性表之顺序表奇偶调整,就是指将顺序表的奇数与偶数位置互换,以最优方法解决,因为方法很多,比如,开辟一个新的顺序表分别存放奇偶数,也可以从头向后寻找奇偶数放置到尾部或头部,但这些都会增大时间与空间的消耗.最优法则是前后分别寻找奇偶不同类型数,满足前奇后偶(或前偶后期),交换两数位置,实现时间复杂度O(n),空间O(1)的方案. void AdjustSqlist(SeqList *L) { int i=0,j=L->last; int temp; while(i<j) { while(L-&g

[考研系列之数据结构]线性表之栈

?基本概念 栈的定义 限定仅在表尾进行插入或删除的线性表 组成 栈顶 栈底 基本操作 入栈(PUSH) 往栈中插入一个元素 弹栈(POP) 从栈顶删除一个元素 栈的表示 顺序栈 链栈 对于顺序栈,有两个指针base和top base指向栈底 top指向栈顶 对于栈的一些基本情况: 栈不存在时候 base=NULL 栈为空时  top=base 栈的长度 top-base 链栈略过. 栈的应用 1 数制转换 数制转换我们使用一种称之为"辗转相除法"的算法.此算法的基本原理基于: N=(N