当前位置: 首页 > news >正文

sqlist void reverse(SqList A)

#include <stdlib.h>
#include <stdio.h>
#include <iostream>
using namespace std;
#define INIT_SIZE 5
#define INCREMENT 10
# define OK 1
# define ERROR 0/* 定义ElemType为int类型 */
typedef int ElemType;
void input(ElemType &s);
void output(ElemType s);
int equals(ElemType a,ElemType b);/* 顺序表类型定义 */
typedef  struct
{ElemType *elem; 	//存储空间基地址int 	length; 	//当前长度int  listsize; 	//当前分配的存储容量
}SqList;void InitList(SqList&L); 
int  ListInsert(SqList &L,int i,ElemType e);
void ListTraverse(SqList L,void(*vi)(ElemType ) );
void reverse(SqList &A);
int main()               //main() function 
{	SqList A;ElemType e;InitList(A);int n,i;// cout<<"Please input the list number ";cin>>n;for(i=1;i<=n;i++){ cin>>e;ListInsert(A, i, e);}//ListTraverse(A,output) ;cout<<"逆置顺序表:"<<endl;reverse(A);ListTraverse(A,output) ;	
}/*****ElemType类型元素的基本操作*****/
void input(ElemType &s)
{cin>>s;
}
void output(ElemType s)
{cout<<s<<" ";
}
int equals(ElemType a,ElemType b)
{if(a==b)return  1;elsereturn  0;
}/*****顺序表的基本操作*****/void InitList(SqList&L) 
{	// 操作结果:构造一个空的顺序线性表L/********** Begin **********/ L.elem=(ElemType*)malloc( INIT_SIZE*sizeof(ElemType));if(!L.elem)return; // 存储分配失败L.length=0; // 空表长度为0L.listsize=INIT_SIZE; // 初始存储容量/********** End **********/
}int  ListInsert(SqList &L,int i,ElemType e)
{	// 初始条件:顺序线性表L已存在,1≤i≤ListLength(L)+1// 操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1/********** Begin **********/ ElemType *newbase,*q,*p;if(i<1||i>L.length+1) // i值不合法return 0;if(L.length>=L.listsize){ // 当前存储空间已满,增加分配if(!(newbase=(ElemType*)realloc(L.elem,(L.listsize+INCREMENT)*sizeof(ElemType))))return(0); ; // 存储分配失败L.elem=newbase; // 新基址L.listsize+= INCREMENT; // 增加存储容量}q=L.elem+i-1; // q为插入位置for(p=L.elem+L.length-1;p>=q;--p) // 插入位置及之后的元素右移*(p+1)=*p;*q=e;            // 插入e++L.length;      // 表长增1return 1;/********** End **********/
}void ListTraverse(SqList L,void(*vi)(ElemType ) )
{ // 初始条件:顺序线性表L已存在// 操作结果:依次对L的每个数据元素调用函数vi()输出/********** Begin **********/ ElemType *p;int i;p=L.elem;for(i=1;i<=L.length;i++)vi(*p++);printf("\n");/********** End **********/
}/********** 定义 void reverse(SqList &A)函数**********/ 
void reverse(SqList &A)
{/********** Begin **********/ int l=0,r=A.length-1;ElemType t;ElemType *p=A.elem;while(l<r){t=p[l];p[l++]=p[r];p[r--]=t;}/********** End **********/
}

http://www.lryc.cn/news/442488.html

相关文章:

  • 聊聊Thread Local Storage
  • WEB攻防-JS项目Node.js框架安全识别审计验证绕过
  • STM32——SPI
  • 【云安全】云上资产发现与信息收集
  • flask搭建微服务器并训练CNN水果识别模型应用于网页
  • 数据篇| 关于Selenium反爬杂谈
  • MySQL高阶1890-2020年最后一次登录
  • update-alternatives官方手册
  • cesium.js 入门到精通(5-2)
  • LINUX的PHY抽象层——PAL
  • 优先级队列(堆)
  • 帧率和丢帧分析理论
  • solidwork找不到曲面
  • mac安装JetBtains全家桶新版本时报错:Cannot start the IDE
  • MVCC机制解析:提升数据库并发性能的关键
  • 如何使用Postman搞定带有token认证的接口实战!
  • Linux Vim编辑器常用命令
  • 【Android】浅析MVC与MVP
  • spark 面试题
  • 青柠视频云——如何开启HTTPS服务?
  • 2016年国赛高教杯数学建模A题系泊系统的设计解题全过程文档及程序
  • vue-使用refs取值,打印出来是个数组??
  • 微服务_入门1
  • 【学习资料】袋中共36个球,红白黑格12个,问能一次抽到3个红4个白5个黑的概率是多少?
  • @PathVariable,@RequestParam,@RequestBody注解,springboot与前端请求之间的数据类型转换
  • 在Python中优雅地打开和操作RDS
  • .whl文件下载及pip安装
  • 望繁信科技受邀出席ACS2023,为汽车行业数智化护航添翼
  • 基于 C语言的 Modbus RTU CRC 校验程序
  • 基于微信小程序的剧本杀游玩一体化平台