c语言建立顺序表 存储并输出,请教数据结构课程中怎么建立顺序表,显示,输出,从头到尾详细点最好加讲解,希望大家能帮这个小忙...

#include

#define MAXSIZE 20

typedef int ElemType;

typedef struct

{

ElemType elem[MAXSIZE];

int length;

}SqList;//顺序表结构定义void InitList(SqList &L)

{

//初始化函数//操作结果:构造一个空在顺序线性表 L.length=0;

return;

}

void ClearList(SqList &L)

{

//清表函数//操作结果:将L置为空表 L.length=0;

return;

}

int ListLength(SqList L)

{

//求表长函数//操作结果:返回表中元素个数 return L.length;

}

int ListEmpty(SqList L)

{

//判空函数//初始条件:顺序线性表L已存在//操作结果:如果不空返回0,否则返回非0值 if(L.length==0)return 1;

else

return 0;

}

/int GetElem(SqList L,int i,ElemType &e)

{

//取元素函数//初始条件:顺序线性表L已存在,1<=i<=ListLength(L)//操作结果:用e返回L中第i个元素的值 if(i<1||i>L.length)

{

printf("i值越界!\n");

return 0;

}

e=L.elem[i-1];

return 1;

}

int LocateElem(SqList L,ElemType e)

{

//定位函数//初始条件:顺序线性表L已存在,e为指定的查找元素//操作结果:返回L中第1个与e相等的元素位序,若这样在元素不存在,则返回0 int i=0;

while(i

++i;

if(i<=L.length)

return i;

else

return 0;

}

int PriorElem(SqList L,ElemType cur_e,ElemType &pre_e)

{

//求前驱函数//初始条件:顺序表已存在//操作结果:若存在元素cur_e,且是第一个元素,返回0;若不是第一个元素,则返回前驱元素的值 int i;

i=LocateElem(L,cur_e);

if(i)

{

// if(i==1)

{

printf("这是第一个元素,没有前驱!!!\n");

return 0;//操作失败 }

else

{

pre_e=L.elem[i-1];

return 1;

}

}

else

{

printf("中不存在此元素!\n");

return 0;//操作失败 }

}

int NextElem(SqList L,ElemType cur_e,ElemType &next_e)

{

//求后继函数//初始条件:顺序表已存在//操作结果:若存在元素cur_e,且是最后一个元素,返回0;若不是最后一个元素,则返回后继元素的值 int i;

i=LocateElem(L,cur_e);

if(i)

{

// if(i==L.length-1)

{

printf("这是最后一个元素,没有后继!!!\n");

return 0;//操作失败 }

else

{

next_e=L.elem[i+1];

return 1;

}

}

else

{

printf("不存在此元素!\n");

return 0;//操作失败 }

}

int ListInsert(SqList &L,int i,ElemType e)

{

//插入函数//初始条件:顺序线性表L已存在,1<=i<=ListLength(L)+1//操作结果:在L中第i个位置前插入新的数据元素e,L的长度加1 int j;

if(i<1||i>L.length+1)

{

printf("插入越界!\n");

return 0;//插入失败 }

if(L.length>=MAXSIZE)

{

printf("顺序上溢!\n");

return 0;//插入失败 }

for(j=L.length-1;j>=i-1;--j)

{

L.elem[j+1]=L.elem[j];

}

L.elem[i-1]=e;

++L.length;

return 1;//成功插入}

int ListDelete(SqList &L,int i,ElemType &e)

{

int j;

if(i<1||i>L.length)

{

printf("i值越界!");

return 0;//操作失败 }

if(ListEmpty(L))

{

printf("L为空表,不能执行删除操作!\n");

return 0;//操作失败 }

e=L.elem[i-1];

for(j=i;j<=L.length-1;j++)

{

L.elem[j-1]=L.elem[j];

}

L.length--;

return 1;//操作成功}//void ListTraverse(SqList L)

{

//输出函数//初始条件:顺序表衣襟存在//操作结果:若顺序表非空,则输出顺序表中所有元素,否则为空操作 int i;

for(i=0;i

{

printf("%5d",L.elem[i]);

}

return;

}

int main(void)

{

SqList L;

int i,s,e;

InitList(L);/创建一个空的顺序表L if(ListEmpty(L))

{

printf("顺序表L是一个空表!\n");

}

else

{

printf("顺序表L不是一个空表!\n");

}

///if语句的输出结果为: printf("\n1~10:\n");

for(i=1;i<=10;i++)

{

ListInsert(L,1,i);///调用插入函数 }

ListTraverse(L);///输出结果为: printf("\n删除指定的元素(输入序号):");

scanf("%d",&i);

ListDelete(L,i,e);

printf("\n删除的第%d个元素的值为%d\n",i,e);

printf("\n删除后元素后顺序表中的元素值为:\n");

ListTraverse(L);

printf("\n查找前驱操作:\n");

printf("\n输入元素:");

scanf("%d",&s);

if(!PriorElem(L,s,e))

{

printf("\n元素%d没有前驱!\n",s);

}

else

{

printf("\n元素%d的前驱为:%d\n",s,e);

}

printf("\n查找后继元素操作:\n");

printf("\n输入元素:\n");

scanf("%d",&s);

if(!NextElem(L,s,e))

{

printf("\n元素%d没有后继!\n",s);

}

else

{

printf("\n元素%d的后继为:%d\n",s,e);

}

/*printf("\n\n");

printf("");

scanf("%d",&s);

if(!NextElem(L,s,e))

{

printf("\n%\n",s);

}

else

{

printf("\n%d%d\n",s,e);

}*/

printf("\n");

return 0;

}

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

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

相关文章

杭州师范大学c语言程序设计机试,2016年杭州师范大学杭州国际服务工程学院程序设计基础考研复试题库...

一、选择题1&#xff0e; C 语言源程序名的后缀是( )A.C B.exe C.obj D.cp 答:A 【解析】C 语言源程序名的后缀为.C2&#xff0e; 以下选项中不合法的标识符是A.printB.FORD._00 答:C【解析】标识符是由若干个字符组成的字符序列&#xff0c;用来命名程序的一些实体。语法规则为…

在c语言中关于静态变量的说法正确的有,关于static变量,请选择下面所有说法正确的内容。...

static表示“全局”或者“静态”的意思&#xff0c;用来修饰成员变量和成员方法&#xff0c;也可以形成静态static代码块&#xff0c;但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说&#xff0c;它不依赖类特定的实例&…

c语言数组下标越界检查程序,数组下标越界

已结贴√问题点数&#xff1a;20 回复次数&#xff1a;11数组下标越界题目是一个有10个元素的数组&#xff0c;存有10个考生的分数&#xff0c;写5个函数&#xff0c;分别计算总分&#xff0c;最高分&#xff0c;最低分&#xff0c;平均分&#xff0c;分数升序排列。我写了5函数…

c语言标准整形,C语言整形数值范围问题

有符号二进制数的表示是这样的&#xff1a;如果计算机的字长为n位&#xff0c;n位二进制数的最高位为符号位。其余n-1位为数值位&#xff0c;采用补码表示法时&#xff0c;可表示的数X的范围是 -2的(n-1)次幂 < X < 2的(n-1)次幂-1。如果字长是16位&#xff0c;补码表示的…

c语言switch comiti,国际经济学作业复习资料第三章.docx

Chapter 3 Labor Productivity and Comparative Advantage —The Ricardian Model■ Multiple Choice QuestionsCountnes trade with each other because they areand because of.different, costssinular, scale economiesdifferent, scale economiessimilar, costsNone of th…

c语言变长参数 第一个参数必须吗,一种使用变长参数为C程序构造灵活回调函数的方法...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼int twice(void *arg, va_list ap){apply_func *func va_arg(ap, apply_func *);int status func(arg, ap);if (status > 0)status func(arg, ap);return status;}twice函数接收一个函数func和它的参数(注意func的参数以奇怪…

已知函数func的C语言代码框架,第三章习题-ddg..doc

第三章习题-ddg.习 题1&#xff0e; 给出以下概念的解释说明。机器语言程序机器指令汇编语言汇编指令汇编语言程序汇编助记符汇编程序反汇编程序机器级程序通用寄存器定点通用寄存器栈指针寄存器指令指针寄存器标志寄存器条件标志(条件码)控制标志寻址方式立即寻址寄存器寻址存…

基于文本 c语言,[源码和文档分享]基于C语言实现的文件系统

1 实验目的学习FAT文件系统的构成能够将自己的程序应用在系统上熟悉dd,mount,umount,等指令设计并实现一个目录列表函数(无须支持选项&#xff0c;如ls -a、ls -l等)&#xff0c;用来显示当前目录下包含的文件信息设计并实现一个改变目录函数(无须处理路径名&#xff0c;如../.…

c语言实现bf算法的定位函数,数据结构c语言版严蔚敏清华大学出版社第四章串.ppt...

数据结构c语言版严蔚敏清华大学出版社第四章串模式匹配(定位) 设有主串S和子串T(将S称为目标串&#xff0c;将T称为模式串)&#xff0c;在主串S中&#xff0c;从位置start开始查找&#xff0c;如若在主串S中找到一个与子串T相等的子串&#xff0c;则返回T的第一个字符在主串中的…

android 部分区域点击,Android编程实现ListView中item部分区域添加点击事件功能

本文实例讲述了Android编程实现ListView中item部分区域添加点击事件功能。分享给大家供大家参考&#xff0c;具体如下&#xff1a;需求如题目&#xff1a;Android listview中item部分区域添加点击事件&#xff0c;在一个界面显示了listview&#xff0c;但显示的内容分为上下两部…

android网络编程终结者,小七论坛终结者V2.0升级版源码 - 源码下载|Internet/网络编程|远程控制编程|源代码 - 源码中国...

文件名大小更新时间小七论坛终结者V2.0升级版源码\Bin\Assist.dll409602018-05-16小七论坛终结者V2.0升级版源码\Bin\bk.gif12232018-05-16小七论坛终结者V2.0升级版源码\Bin\SkinPPWTL.dll5489442005-12-09小七论坛终结者V2.0升级版源码\Bin\X7.dat1393842013-12-06小七论坛终…

android判断usb已连接,android 判断是否有网络连接(usb连接电脑问题)

找到很多判断网络连接的工具类,如下:package client.verbank.mtp.allone.util;import android.app.Activity;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;/*** 检测手机网络是否可用** author qiulinhe* createTim…

android uber源码,Uber SDK in android

问题I am trying to add an Uber request a ride button in my android application. In my gradle build file I have added the following line:compile com.uber.sdk:rides-android:0.5.0Automatically Android studio asks to sync the gradle files as they have changed.…

android 里程,鹰眼Android SDK | 百度地图API SDK

请求12小时内的轨迹里程&#xff0c;并进行轨迹纠偏和驾车里程补偿。// 请求标识int tag 2;// 轨迹服务IDlong serviceId 0;// 设备标识String entityName "myTrace";// 创建里程查询请求实例DistanceRequest distanceRequest new DistanceRequest(tag, serviceI…

Android mock单例对象,如何对Java单例模式进行mock

最近刚开始转行到Java编程&#xff0c;项目使用的是Junit4框架。其中遇到了采用单例模式(饿汉)实现的Java代码&#xff0c;那么如何对该类中的方法进行模拟呢&#xff1f;因为该模式下所有的共有方法都是通过获取该类的静态私有实例来调用类中的共有方法&#xff0c;这就需要对…

weex android 性能,跨越适配性能那道坎,企鹅电竞Android weex优化

作者&#xff1a;龙泉&#xff0c;腾讯企鹅电竞工程师商业转载请联系腾讯WeTest获得授权&#xff0c;非商业转载请注明出处。WeTest 导读企鹅电竞从17年6月接入weex&#xff0c;到现在已经有一年半的时间&#xff0c;这段时间里面&#xff0c;针对遇到的问题&#xff0c;企鹅电…

华为5g鸿蒙折叠,华为5G折叠概念新机:内折叠+麒麟9000+鸿蒙OS 这才是华为的实力...

从手机二十多年的发展历史来看&#xff0c;现在很多形态各异的智能手机&#xff0c;其设计思路与功能机时代一样&#xff0c;比如三星Fold的折叠手机&#xff0c;就和功能机时代的翻盖手机类似&#xff0c;又或者OPPO的X 2021卷轴屏概念机&#xff0c;则和功能机时代的滑屏设计…

html 改变文本框字体颜色,CSS更改文本框的字体颜色

我已搜索和搜索&#xff0c;但不能很好地得到这个权利。我在我的网站上有一个文本框&#xff0c;在我的CSS/HTML中&#xff0c;我将它定义为一个类&#xff0c;就像其他任何东西一样&#xff0c;并给它一个背景图像没有问题。我决定我需要改变字体颜色&#xff0c;但不管我做什…

vue渲染html失败,Vue ssr失败,渲染的html为undefined

想试着写一个ssr demo&#xff0c;不带路由&#xff0c;不带数据预取的。官网文档中的基本用法demo的照写了运行没问题&#xff0c;但当我想换成组件式开发的时候就出问题了&#xff0c;渲染出来的页面是空的&#xff0c;这是我的代码&#xff0c;麻烦帮忙看看这是entry-client…

iis7.5配置 html,windows server 2008R2系统 IIS7.5配置伪静态的方法(urlrewrite)

这篇文章主要介绍了windows server 2008R2系统 IIS7.5配置伪静态页面 ,需要的朋友可以参考下从网上找了一下&#xff0c;原来微软IIS官方网站给IIS7及以后续版本提供了个URL重写组件。下载地址&#xff1a;http://www.iis.net/download/URLRewrite或者//www.iis7.com/softs/479…