数据结构c语言版顺序表函数,C语言版数据结构顺序表的问题

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

52.Status ListInsert_Sq(SqList *L, int i, ElemType e)

53.{

54.     ElemType *newBase = NULL;

55.     ElemType *q = NULL;

56.     ElemType *p = NULL;

57.

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

59.     {

60.         return ERROR;                     //边界检查

61.     }

62.     //当前存储空间已满,增加分配

63.     if(L->length >= L->listSize)

64.     {

65.         //realloc()函数是关键点,所以要先明白这个函数的用法

66.         newBase = (ElemType *)realloc(L->elem, (L->listSize + LIST_INCREMENT) * sizeof(ElemType));

67.         if(!newBase)

68.         {

69.             exit(OVERFLOW);               //存储分配失败

70.         }

71.         L->elem = newBase;                //新基址

72.         L->listSize += LIST_INCREMENT;    //增加存储容量

73.     }

74.     q = L->elem + (i-1);                  //q为插入位置

75.     //插入位置及之后的元素右移

76.     for(p = L->elem + (L->length - 1); p >= q; --p)

77.     {

78.         *(p+1) = *p;

79.     }

80.     *q = e;

81.     ++L->length;

82.     return OK;

83.}

第63行 L->length >= L->listSize,顺序表的长度跟它的存储容量能在一起比较吗?不是一个领域的定义吧?不太理解这两者的区别。

ElemType 实际上是Int,为什么不直接写Int?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>