一、顺序表

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

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

静态定义

#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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值