正在加载图片...
f(pj>i-1) return ERROR,/*p为NULL时表示没有第i-1个结点 j-1表示i<=0时插入序号错* S->next=p-next p->next=s, /*s所指新结点插入p所指第i-1个结点之后 /***幸家**幸春**率***幸*率春*率本幸幸* 功能:线性表删除操作,删除单链表的第i个结点 输入:单链表的头指针L、位置i 六输出:成功时返回OK int List Delete( LinkList L, int 1) LNode "p, "q Int J; p=( LNode*)L;,/*p指向链表头结点* while(p->next &&j<i-1) {p=p->next++j;}/*执行i-l次,使p定位第i-1个结点* p->next指向结点第i个结点, search for ith node* if(!(p->next)lP>i-1)return ERROR; free(q) return OK /*****本*容*本*****客春**幸*幸本布*****本幸*率*****本** 功能:读取线性表第i个结点的值 ★输入:单链表的头指针L、位置 输出:成功时返回OK、通过指针e返回第i个结点的值 失败返回 ERROR int Get Elem(LinkList L, int i, Elem Type *e) lode*p, 's Int j; p=( LNode*)L->next,/p指向链表第1个结点* while(p &&j< {p=p->next;++j;}/*执行i-1次,使p定位第i个结点* if(plj>i) return ERROR; return OF 客*称水*客水容水*称水容水水容客*客客水客客*客水*客水水*称水*凇称水*水客客水*水客水水水*if (!p || j>i-1) return ERROR; /*p 为 NULL 时表示没有第 i-1 个结点 j>i-1 表示 i<=0 时插入序号错*/ s=(LinkList) malloc(sizeof(LNode)); s->data=e; s->next=p->next;p->next=s; /*s 所指新结点插入 p 所指第 i-1 个结点之后*/ return OK; } /********************************************************** ** 功能:线性表删除操作,删除单链表的第 i 个结点 ** ** 输入:单链表的头指针 L、位置 i ** ** 输出: 成功时返回 OK ** **********************************************************/ int ListDelete(LinkList L,int i) { LNode *p,*q; int j; p=(LNode *) L; /*p 指向链表头结点*/ j=0; while (p->next && j<i-1) {p=p->next;++j;} /* 执行 i-1 次,使 p 定位第 i-1 个结点 */ p->next 指向结点第 i 个结点, search for ith node*/ if (!(p->next)||j>i-1) return ERROR; q=p->next;p->next=q->next; free(q); return OK; } /********************************************************** ** 功能:读取线性表第 i 个结点的值 ** ** 输入:单链表的头指针 L、位置 i ** ** 输出: 成功时返回 OK、通过指针 e 返回第 i 个结点的值 ** ** 失败返回ERROR ** **********************************************************/ int GetElem(LinkList L,int i, ElemType *e) { LNode *p,*s; int j; p=(LNode *) L->next; /*p 指向链表第 1 个结点*/ j=1; while (p && j<i) {p=p->next;++j;} /* 执行 i-1 次,使 p 定位第 i 个结点 */ if (!p||j>i) return ERROR; *e=p->data; return OK; } /**********************************************************
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有