线性表操作练习

/*
1、线性表练习
(1)从给定顺序表A中删除元素值在x到y(x<=y)之间的所有元素,效率要求较高。
*/


int def(vector A,int n,ElemType x,ElemType y)
{
int i=0,k=0;
while(i<0)
{
if(A[i]>=x&&A[i]<=y)
k++;
else
A[i-k]=A[i];
i++;
}
return n-k;
}

/*
(2)用不多于3n/2的平均比较次数,在一个顺序表A中找出最大的和最小的值。
*/


void maxmin(vector A,int i)
{
int max,min, i;
max=A[0];min=A[0];
if(A[i]>max)
max=A[i];
else if(A[i]<min)
min=A[i];
printf("max=%d,min=%d\n",max,min);
}

/*
(3)在无头结点的动态单链表上实现线性表插入操作INSERT(L,i,b),并且和带头节点的动态单链表上实现的相同操作进行比较。
*/


void Insert(LinkList &L,int i,ElemType e)
{
if(!L)
{
L=(LinkList)malloc(sizeof(Lnode));
L->data=e;
L->next=NULL;
}
else
{
if(i==1)
{
s=(LinkList)malloc(sizeof(Lnode));
s->data=e;
s->next=L;
L=s;
}
else
{
p=L;j=1;
while(p&&j<i-1)
{
j++;p=p->next;
}
if(p||j>i-1)
return ERROR;
s=(LinkList)malloc(sizeof(Lnode));
s->data=e;
s->next=p->next;
p->next=s;
}
}
}

时间: 2024-10-10 13:23:37

线性表操作练习的相关文章

【算法与数据结构实战】线性表操作-实现A并B,结果放入A中

//数据结构与算法基础题1:线性表操作,实现A并B,结果放入A中 #include "stdafx.h" #include <iostream> #include <string> #include <vector> #include <algorithm> #pragma warning(disable:4996) using namespace std; int main() { vector<int> set_A, se

TOJ 1214: 数据结构练习题――线性表操作

描述 请你定义一个线性表,可以对表进行"在某个位置之前插入一个元素"."删除某个位置的元素"."清除所有元素"."获取某个位置的元素"等操作.键盘输入一些命令,可以执行上述操作.本题中,线性表元素为整数,线性表的第一个元素位置为1.线性表的最大长度为1000. 输入 各个命令以及相关数据,它们对应的格式如下: 在某个位置之前插入操作:insert,接下来的一行是插入的组数n,下面是n行数据,每行数据有两个值,分别代表位置与插入

线性表操作

#include<iostream>      //c++头文件 using namespace std;   #define LIST_INIT_SIZE 20     //预定义常量 #define LISTINCREMENT 5 #define OK 1 #define ERROR 0 typedef int ElemType;              //定义类型 typedef int Status; typedef struct                        //

ACM-线性表操作

线性表操作 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte总提交:2795            测试通过:589 描述 线性表是n个元素的有序集合(n30),n是线性表中元素的个数,称为线性表的长度.可以用一组地址连续的存储单元依次存储线性表中元素,采用这种存储方式的线性表称为顺序表. 请在顺序表上实现运算,实现顺序表的逆置,删除表中所有元素值等于x的元素. 输入 三组数据,顺序表元素类型分别为整型.字符型和实型. 每一组第一行给出

数据结构与算法复习第一天——基础概念,线性表

数据结构的一些基本术语: 数据:客观事物的符号表示 数据元素:数据集合中的一个个体 数据项 组成数据元素 数据对象是数据的子集 由相同性质的数据元素构成 数据结构:带有结构的数据元素的集合 数据结构可以用一个四元组表示(D,L,S,O) data ,logical structrue ,storage struction operation操作 L——集合,线性,树形,图形 S——存储结构,有顺序,链式,散列 线性表——线性结构,数据元素之间一对一的关系, N个具有相同类型的数据元素的有限序列

一. 数据结构干货系列之一:线性表基本操作

1. 如果一个链表结点数大于等于2,把首节点变为尾结点 status A(LinkList L){ //L是无头结点的单链表 if(L&&L->next){ Q=L; P=L->next; while(P->next) {P=P->next;} P->next=Q; Q->next=null; } return ok; } //如果一个链表结点数大于等于2,把首节点变为尾结点. 2. 将单循环链表拆成两个单循环链表 void AA(LNode *a,LN

线性表 及Java实现 顺序表、链表、栈、队列

数据结构与算法是程序设计的两大基础,大型的IT企业面试时也会出数据结构和算法的题目, 它可以说明你是否有良好的逻辑思维,如果你具备良好的逻辑思维,即使技术存在某些缺陷,面试公司也会认为你很有培养价值,至少在一段时间之后,技术可以很快得到提高.同时,它也是软考的重点,我们需要对这部分的内容进行一下总结. 我们先看一下数据结构和算法的整体内容. 1.线性表 概念: 数据元素的排列方式是线性的. 分类: 分类规则是根据上图中元素的存储结构来划分的. (1)顺序表 基本思想:元素的存储空间是连续的.在内

(数据结构)顺序存储的线性表

---恢复内容开始--- 推荐一本学习书籍:程杰的<大话数据结构>. 既然是数据结构,那什么是数据结构呢?这里补充一些基本术语和概念. 数据结构: 是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科. 数据: 是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号总集. 数据元素: 是组成数据.有一定意义的基本单位,在计算机中通常作为整体处理.也成为记录. 数据项: 一个数据元素可以由若干个数据项组成.数据项是数据不可分

二、线性表的概念与实现

1.线性表的本质与相关操作 线性表的定义?线性表(List)是零个或多个数据元素的集合?线性表中的数据元素之间是有顺序的?线性表中的数据元素个数是有限的?线性表中的数据元素的类型必须相同线性表的性质?a0为线性表的第一个元素,只有一个后继?an为线性表的最后一个元素,只有一个前驱?除a0和an外的其它元素ai,既有前驱,又有后继?线性表能够逐项访问和顺序存取线性表的一些常用操作?创建线性表?销毁线性表?清空线性表?将元素插入线性表?将元素从线性表中删除?获取线性表中某个位置的元素?获取线性表的长