题目内容

请完成以下对单链表的初始化操作算法。单链表的存储结构描述为:typedef struct LNode {ElemType data; // 数据域struct LNode *next; // 指针域} LNode, *LinkList;Status InitList(LinkList &L)//创建一个带头结点的空单链表L{ L=____;//为头结点分配空间,并使L指针指向它if (____)//空间分配失败return ERROR;____; //将头结点的指针域置为空retrun OK;}//InitList

查看答案
更多问题

请完成以下对单链表的按值查找操作算法。单链表的存储结构描述为:typedef struct LNode {ElemType data; // 数据域struct LNode *next; // 指针域} LNode, *LinkList;int LocateElem(LinkList L,ElemType e)//查找带头结点的单链表L中值为e的数据元素,如果查找成功,//则函数返回它在线性表中首次出现时的位序号, 否则,函数返回0{ LinkList ____ ;//引进p指向链表中的首结点int j=1;//j记录p结点在表中的位序号while (p&&____){____;j++;}if (____)return 0; //查找不成功,则函数返回0____;//否则函数返回j}//LocateElem

请完成以下对单链表的插入操作算法。单链表的存储结构描述为:typedef struct LNode {ElemType data; // 数据域struct LNode *next; // 指针域} LNode, *LinkList;Status ListInsert(LinkList &L, int i, ElemType e)// 在单链表L的第i个数据元素之前插入新的元素e,i的合法值是1≤i≤表长+1{ LinkList p=L,s;//p指针指示链表中的头结点int j=0;//j指示p指针所指向的结点在表中的位序号while (p&&____)//找到第i个元素的前驱结点,并用p指针指示它{____;++j;}if (____||j>i-1)// i不合法(找不到前驱结点)return ERROR;s=(LinkList)malloc(sizeof(LNode));//产生新的结点______ ;______ ;//修改链指针,让新结点插入到第i-1个元素结点p的后面p->next=s;return OK;}//ListInsert

请完成以下对单链表的删除操作算法。单链表的存储结构描述为:typedef struct LNode {ElemType data; // 数据域struct LNode *next; // 指针域} LNode, *LinkList;Status ListDelete(LinkList &L, int i, ElemType &e)// 删除单链表L中的第i个数据元素,并用e返回其值,i的合法值是1≤i≤表长{LinkList ____, q;//引进p指针指示链表中的头结点int j=0;//j指示p指针所指向的结点在表中的位序号while(____&&jnext;++j;}if(____||j>i-1)// i不合法(找不到前驱结点)return ERROR;q=p->next;//q指向待删结点____;// 修改链指针让待删结点从链中脱离出来e=q->data;//用e保存待删结点的数据元素值____;//释放待删结点空间return OK;}//ListDelete

请完成以下对单链表的创建操作算法。单链表的存储结构描述为:typedef struct LNode {ElemType data; // 数据域struct LNode *next; // 指针域} LNode, *LinkList;Status CreatLinkList(LinkList &L ,int n)//用尾插法创建一个长度为n的带头结点的单链表{ ElemType node;L=(LinkList)malloc(sizeof(LNode)); //先创建一个空链表L->next=NULL;LinkList r=L, p; //其中r始终指向链表当前的尾结点for (int i=0; idata);//将键盘读入的数存入p结点的数据域中p->next=NULL;____;//将新结p点链接到链表的尾部____;//使r指向新的尾结点}return OK;}//CreatLinkList

答案查题题库