/* 初始化顺序线性表 */
Status InitList<span style="background-color: rgb(51, 255, 51);">(LinkList *L</span>)
{
*L=(LinkList)malloc(sizeof(Node)); /* 产生头结点,并使L指向此头结点 ,L是指向指针的指针,即:指向头节点指针的指针*/
if(!(*L)) /* 存储分配失败 */
return ERROR;
(*L)->next=NULL; /* 指针域为空 */
return OK;
}
/* 初始条件:顺序线性表L已存在,1≤i≤ListLength(L) */
/* 操作结果:用e返回L中第i个数据元素的值 */
Status GetElem(LinkList L,int i,<span style="background-color: rgb(51, 255, 51);">ElemType *e</span>)
{
int j;
LinkList p; /* 声明一结点p */
p = L->next; /* 让p指向链表L的第一个结点 */
j = 1; /* j为计数器 */
while (p && j<i) /* p不为空或者计数器j还没有等于i时,循环继续 */
{
p = p->next; /* 让p指向下一个结点 */
++j;
}
if ( !p || j>i )
return ERROR; /* 第i个元素不存在 */
*e = p->data; /* 取第i个元素的数据 */
return OK;
}
int main()
{
<span style="background-color: rgb(51, 255, 51);">LinkList L;</span>
<span style="background-color: rgb(51, 255, 51);"> ElemType e;</span>
Status i;
int j,k;
i=InitList<span style="background-color: rgb(51, 255, 51);">(&L</span>);
GetElem(L,5,<span style="background-color: rgb(51, 255, 51);">&e</span>);
return 0;
}
被调函数InitList,GetElem中的参数一般用指针,主调函数中的LinkList L,ElemType e,要想改变L,e的值,主调函数调用时用取地址符&L;不想改变L,e的值调用时直接传递,想改变自己的值,被调函数体中用指针,主调i函数调用时加上&