博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一、顺序表
阅读量:4658 次
发布时间:2019-06-09

本文共 1342 字,大约阅读时间需要 4 分钟。

  定义一张顺序表就是在内存中开辟一段连续的存储空间,并给他取个名字。

定义顺序列表的方法:一、静态定义;二、动态定义;

静态定义

#define MaxSize 100 ElemType Sqlist[MaxSize]; int len;

动态定义

#define MaxSize 100 typedef struct{
ElemType *elem; int length; int listsize; } Sqlist; void initSqlist(Sqlist *L) {
L->elem = (int *)malloc(MaxSize*sizeof(ElemType)); if (!L->elem) {
exit(0); } L->length = 0; L->listsize = Maxsize; }

像顺序表中插入元素

    在长度为n的顺序表中的第i个位置插入新元素。例如:

    A(a1,a2,...ai-1,ai,...an)

    在第i个位置插入新元素item后,变为

    A (a1,a2,...ai-1,item.ai,... an)

静态表中插入:

void InserElem(ElemType Sqlist[], int n, int i, ElemType item) {
int t; if (n==MaxSize || i<1 || i>n+1) {
exit(0); } for (t=n-1; t>=i-1; t--) {
Sqlist[t+1] = Sqlist[t]; } Sqlist[i-1] = item; n = n + 1; }

 

  动态表中插入

 

void InsertElem(Sqlist *L, int i, ElemType item) {
ElemType *insertPtr, *p; if(i<1 || i>L->length+1) {
exit(0); } if(L->length > L->listsize) {
L->elem = (ElemType *)realloc(L->elem, (L->listsize+10)*sizeof (ElemType)); L->listsize = L->listsize + 10; } insertPtr = &(L->elem[i-1]; for (p=&(L->elem[L->length-1]); p>=inserPtr; p--) {
*(p+1) = *p; } *insertPrt = item; L->length++; }

 

 

转载于:https://www.cnblogs.com/MrDing/archive/2012/02/15/2353102.html

你可能感兴趣的文章
左旋转字符串
查看>>
第二次C语言实验报告
查看>>
XPath轴
查看>>
Struts2的优点与Struts1的区别:
查看>>
5-29 删除字符串中的子串
查看>>
webdriver模拟鼠标操作
查看>>
Spring cloud 基础
查看>>
游戏开发Unity渲染场景光照性能优化 ShaderLOD
查看>>
java中构造方法的使用
查看>>
使用Expression动态创建lambda表达式
查看>>
MapReduce
查看>>
找工作——JVM内存管理
查看>>
【Flask】在Flask中使用logger
查看>>
好系统重装助手教你如何让win10系统快速开机
查看>>
linux开机启动
查看>>
BZOJ 1101 [POI2007]Zap 【莫比乌斯反演】
查看>>
SQL Server-The target principal name is incorrect. Cannot generate SSPI context
查看>>
AS3全局与局部坐标转换
查看>>
Java内部类详解
查看>>
初识Twisted(一)
查看>>