线性表的顺序存储

          线性表是n个类型相同数据元素的有限序列,对n>0,除第一个元素无直接前驱,最后一个元素没有直接后继外,其他都是每个元素有一个直接前驱和直接后继,而且是一对一的关系。

     线性表:顺序存储,链式存储。

     (1) 按内容查找:

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>#define OK   1
#define ERROR  0
#define TRUE 1
#define FALSE 0
#define ElemType int
#define	MAXSIZE  100   /*此处的宏定义常量表示线性表可能达到的最大长度*/
typedef  struct
{ ElemType  elem[MAXSIZE];  /*线性表占用的数组空间*/int       last;    /*记录线性表中最后一个元素在数组elem[ ]中的位置(下标值),空表置为-1*/
}SeqList;int  Locate(SeqList L, ElemType e)
{	int i=0;        /*i为扫描计数器,初值为0,即从第一个元素开始比较*/while ((i<=L.last)&&(L.elem[i]!=e))		/*顺序扫描表,直到找到值为key的元素, 或扫描到表尾而没找到*/i++; if  (i<=L.last)return(i+1);  /*若找到值为e的元素,则返回其序号*/elsereturn(-1);  /*若没找到,则返回空序号*/
}void main()
{SeqList l;int p,q,r;int i;printf("请输入线性表的长度:");scanf("%d",&r);l.last = r-1;printf("请输入线性表的各元素值:\n");for(i=0; i<=l.last; i++){scanf("%d",&l.elem[i]);}printf("请输入要查找的元素值:\n");scanf("%d",&q);p=Locate(l,q);if(p == -1)printf("在此线性表中没有该元素!\n");elseprintf("该元素在线性表中的位置为:%d\n",p);
}
(2)插入操作:

将原表中位置n,n-1...i..上的结点,依次后移到位置n+1,n,n-1...i...的位置。空出i的位置,将元素e插入。

#define OK 1
#define ERROR 0
int InsList(SeqList *L,ElenType e)
{
int k;
if((i<1)||(i>L->Last+2))
{
printf("不合法!\n");
return (ERROR);
}
if(L->Last>=MAXSIZE-1)
{
printf("表满!\n");
return (ERROR);
}
for(k=L->Last;k>=i-1;k--)
{
L->elem[k+1]=L->elem[k];//后一一个位置
L->elem[i-1]=e;//将e插入
L->last++;
return(Ok);
}
}
(3)删除操作:

将原表中位置i+1,i+2..n上的结点,依次前移到位置i,i+1...n的位置,将元素e删除。

int DellList(SeqList *L,int i,ElemType *e)
{
int k;
if(i<1|| i>L->last+1)
{
printf("错误!\n");
return(ERROR);
}
*e=L->elem[i-1];
for(k=i;i<=L->last;k++)
L->elem[k-1]=L->elem[k];
L->last--;
return (OK);
}




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 5.6.38 数据库编译安装

一、系统环境&#xff1a; # cat /etc/redhat-release CentOS release 6.9 (Final)二、mysql 编译安装&#xff1a; 1、安装依赖包&#xff1a; yum install -y ncurses-devel libaio-devel cmake2、创建mysql管理用户&#xff1a; useradd -s /sbin/nologin -M mysql id m…

旧地重游

光阴飞逝1991年跟随父母搬迁至长沙&#xff0c;至今已有16年。2007年春节舅妈大寿借此机会回到儿时旧地以了多年来的心愿。经过1个小时左右颠簸终于快回到儿时生长的地方&#xff0c;那里的路面年久失修&#xff0c;经过昨天的大雨&#xff0c;已经坑坑洼洼路面到处积水&#x…

我要不要离职?

1#读者提问来到四线城市的小公司&#xff0c;其他员工都是公司主动找到他们转正的&#xff0c;有的一个月有的三个月&#xff0c;而我半年过去了&#xff0c;以为时间到了也跟他们一样自动帮我转正。然而没有&#xff0c;昨天忍不住问了公司&#xff0c;今天就拿转正表来给我填…

单链表的应用 就地逆置

【问题描述】试实现线性表的就地逆置算法&#xff0c;即在原表的存储空间将线性表&#xff08;a1,a2,a3....an&#xff09;逆置为&#xff08;an...a3,a2,a1&#xff09;. [分析]就地逆置就是不需要额外申请结点空间&#xff0c;只需要利用原来的表中的结点空间。若对顺序表中的…

关于arguments的用法

当函数的参数个数无法确定的时候&#xff1a;用 arguments。函数的 arguments 对象并不是一个数组&#xff0c;它相当于是一个实参的集合&#xff0c;但是访问单个参数的方式与访问数组元素的方式相同。访问 函数中的第n个参数 则可以使用arguments[n-1]。 1、arguments实际为实…

搞懂进程组、会话、控制终端关系,才能明白守护进程干嘛的?

守护进程概念&#xff1a;守护进程&#xff0c;也就是通常所说的Daemon进程&#xff0c;是Linux中的后台服务进程。周期性的执行某种任务或等待处理某些发生的事件。Linux系统有很多守护进程&#xff0c;大多数服务都是用守护进程实现的。比如&#xff1a;像我们的tftp&#xf…

关于编译C#文件

使用csc.exe编译非控制台应用程序,常使用/target选项此选项可简写为/t,用来指定要创建的文件类型. 如编译一个类库文件(dll)Class1.cs: namespaceTest...{ /**//// <summary> /// Class1 的摘要说明。 /// </summary> public class Class1 ...{ …

中缀表达式转换为前缀及后缀表达式并求值【摘】

它们都是对表达式的记法&#xff0c;因此也被称为前缀记法、中缀记法和后缀记法。它们之间的区别在于运算符相对与操作数的位置不同&#xff1a;前缀表达式的运算符位于与其相关的操作数之前&#xff1b;中缀和后缀同理。举例&#xff1a;(3 4) 5 - 6 就是中缀表达式- 3 4 …

H5-geolocation学习

geolocation——定位PC——IP地址精度比较低IP库Chrome -> Google手机——GPSwindow.navigator.geolocation单次 getCurrentPosition(成功, 失败, 参数)enableHighAccuracy 高精度模式——更慢、更费电timeout 超时maximumAge 缓存时间…

【速来抢】iPhone12、STM32开发板、1024元现金红包…打包免费送!!!

没错&#xff01;华清远见在做1024狂欢节活动今年他们“玩”的有点大参与活动&#xff0c;抽取幸运锦鲤下面21件惊喜大礼&#xff0c;打包全部带回家????参与方式&#xff1a;扫码下方二维码&#xff0c;进活动群获取抽奖链接&#xff0c;参与抽奖????福利2除了万元锦鲤…

什么才是成熟

成熟就是你能控制你自己&#xff0c;知道自己想要什么&#xff0c;并能自如的朝着这个方向走&#xff0c;是你能控制自己的喜怒哀乐&#xff0c;而不是要别人左右你&#xff0c;他的表现应该是这样的 &#xff08;文摘&#xff01;&#xff09; 1.现实态度 一个心理健全的成年人…

1024,第 15 届「中国内核开发者大会」 参会指南(议程全剧透)

各位好&#xff0c;第 15 届「中国内核开发者大会」即将开幕&#xff0c;这些参会指南请提前收藏好&#xff1a;2020「中国内核开发者大会」&#xff08;以下简称 CLK&#xff09;将在 2020 年 10 月 24 日举办&#xff0c;线上线下同步进行&#xff0c;线上由 CSDN 进行全网直…

C语言中的转义字符【转ce123的技术博客】

C语言中的转义字符 简介 在字符集中&#xff0c;有一类字符具有这样的特性&#xff1a;当从键盘上输入这个字符时&#xff0c;显示器上就可以显示这个字符&#xff0c;即输入什么就显示什么。这类字符称为可显示字符&#xff0c;如a、b、c、$、和空格符等都是可显示字符。 另一…

Tomcat配置和Web应用程序开发

引自友人blog: [url]http://blog.csdn.net/senton[/url]◆tomcat是一个专门用于web服务的服务器软件.1&#xff0e;运行 &#xff1a;设置完毕后就可以运行tomcat服务器了&#xff0c;进入tomcat的bin目录&#xff0c;windows下用startup启动tomcat&#xff0c;相应的关闭tomca…

centos关闭防火墙

centos6.5 查看防火墙状态 &#xff1a; service iptable status 临时关闭防火墙 &#xff1a; servcie iptables stop 永久关闭防火墙 &#xff1a;chkconfig iptables off centos7 停止firewall&#xff1a; systemctl stop firewalld.service …

1024对话内核大神谢宝友

我看了CSDN的采访&#xff0c;感觉比较官方&#xff0c;不知道是不是编辑的原因把一些内容给隐藏了&#xff0c;所以我还是想完整的内容放出来给大家看看&#xff0c;这些问题&#xff0c;可能是很多后辈程序员非常关心的。今天是1024节&#xff0c;这个数字对于写在电脑前写代…

转义字符的应用

转义字符的应用 案列1&#xff1a;很多转义字符的作用是专门针对于打印机的,比如\b1、使用“Y”和“-”&#xff1b;2、打印Y&#xff0c;光标在Y后3、退格&#xff0c;这时光标落在Y字符处&#xff0c;由于是打印机&#xff0c;Y还是留了下来&#xff0c;就打出“”。案例2&am…

javascript 里Array的一些方法

1. join()方法&#xff1a;join()方法的用途是连接字符串值&#xff0c;join()方法只有一个参数&#xff0c;即数组项之间使用的字符串如&#xff1a;varaColors ["red","green","blue"];alert(aCloors.join("-"));//output "red…

链表_有序链表(给数组排序-应用)

//链结点 public class Link {public long dData;public Link next;public Link(long dd) {dDatadd; }public void displayLink() {System.out.print(dData" ");}} public class SortedList {private Link first;public SortedList(Link[] linkArr) {firstnull;fo…

很多人都不清楚HEX文件格式

Intel HEX文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中&#xff0c;每一行包含一个HEX记录。这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。Intel HEX文件通常用于传输将被存于ROM或者EPROM中的程序和数据。大多数EPR…