Others
给定一个带头结点的单链表,设L为头指针,结点的结构定义如下,试写一算法删除该链表中第i个结点。(14分)
//单链表结点的结构
typedef struct LNode
{
ElemType data;
struct LNode *next;
} LinkList;
//删除单链表中第i个结点。
bool ListInsert(LinkList *&L,int i,ElemType &e)
{
//请在此处编写代码完成函数功能。
Others
给定一个带头结点的单链表,设L为头指针,结点的结构定义如下,试写一算法删除该链表中第i个结点。(14分)
//单链表结点的结构
typedef struct LNode
{
ElemType data;
struct LNode *next;
} LinkList;
//删除单链表中第i个结点。
bool ListInsert(LinkList *&L,int i,ElemType &e)
{
//请在此处编写代码完成函数功能。
bool ListInsert(LinkList*& L, int i, ElemType& e) {
if (i<=0||L == NULL)
return false;
LinkList* now = L;
LinkList* last=L;
while (i--&&now!=NULL) {
last = now;
now = now->next;
}
if (now==NULL) //i大于链表长度
return false;
e = now->data;
last->next = now->next;
free(now);
return true;
}