|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 孤世星辰 于 2021-5-17 11:59 编辑
- #define OK 1
- #define ERROR 0
- #define TRUE 1
- #define FALSE 0
- typedef int Status;
- // Status 是函数的类型,其值是函数结果状态代码,如OK
- // 初始条件:顺序线性表L已存在,1 <= i <= ListLength(L)
- // 操作结果:用e返回L中第i个数据元素的值
- Status GetElem(SqList L, int i, ElemType *e)
- {
- if( L.length==0 || i<1 || i>L.length )
- {
- return ERROR;
- }
- *e = L.data[i-1]; //不是说线性表位序是从1开始么,为什么这个给我感觉还是跟数组一样从0开始呢
- return OK;
- }
复制代码
- /* 初始条件:顺序线性表L已存在,1<=i<=ListLength(L) */
- /* 操作结果:删除L的第i个数据元素,并用e返回其值,L的长度-1 */
- Status ListDelete(LinkList *L, int i, ElemType *e)
- {
- int j;
- LinkList p, q; //这样定义指针是不是有问题,定义指针不是*p么
- p = *L;
- j = 1;
- while( p->next && j<i )
- {
- p = p->next;
- ++j;
- }
- if( !(p->next) || j>i )
- {
- return ERROR;
- }
- q = p->next;
- p->next = q->next;
- *e = q->data;
- free(q);
- return OK;
- }
复制代码 |
|