ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

顺序表

2022-07-04 17:03:36  阅读:122  来源: 互联网

标签:顺序 int Elemtype InitSize MaxSize SqList data


1.顺序表动态分配

#include <iostream>  // 输出语句头文件 
#include <stdlib.h>  //malloc函数头文件 
# define InitSize 50
typedef int Elemtype;
typedef struct{
	Elemtype *data;   //定义一个int(或其他)类型的指针data 
	int length,MaxSize;//定义长度,最大数量 
}SqList;
 int main(){
 SqList L;
 L.data=(Elemtype *)malloc(sizeof(Elemtype)*InitSize);
 //在动态内存区域申请一块Elemtype类型的,
 //长度为数据类型Elemtype*InitSize的连续空间,
 //并返回第一个字节地址 
 L.data[0]=1206;
 L.length=1;
 L.MaxSize=InitSize;
 printf("%d %d %d",L.data[0],L.MaxSize,L.length);
 	return 0;	
 }

2、顺序表基本操作—初始化操作

#include <iostream> 
#include <stdlib.h> 
#define OK 1
#define OVERFLOW 0
#define InitSize 10

typedef int Elemtype;
typedef struct{
	Elemtype *data;
	int length,MaxSize; 
}SqList;

//构造一个空的线性表L 
int InitSqList(SqList &L){
	
	L.data=(Elemtype *)malloc(sizeof(Elemtype)*InitSize);

	if(!L.data)//判断是否分配失败
	  exit(OVERFLOW);//此句的意思是如果在malloc分配后,仍然为空,则分配失败。 
	//真正初始化操作 
	L.length=0;
	L.MaxSize=InitSize;
	return OK;
}
int main()
{
     SqList L;	
	InitSqList(L);	
}

2、顺序表基本操作—插入操作
【在顺序表L的第i(1<=I<=L.length+1)个位置插入新元素e 】
注意:当插入的位置为第i个节点时,需要移动n-i+1个元素

算法思想:

​ 1.判断插入位置i是否合法
​ 2.判断顺序表的存储空间是否已满
​ 3.将第n至第i位的元素依次向后移动一个位置,空出第i个位置
​ 4.将要插入的新元素e放入第i个位置
​ 5.表长加1,插入成功返回OK

标签:顺序,int,Elemtype,InitSize,MaxSize,SqList,data
来源: https://www.cnblogs.com/cecilia-wu/p/16443530.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有