77范文网 - 专业文章范例文档资料分享平台

广工数据结构anyview答案(2)

来源:网络收集 时间:2019-02-16 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

单链表的类型定义为: typedef struct LNode { ElemType data; struct LNode *next;

} LNode, *LinkList; // 结点和结点指针类型 ***********/

int ListLength_L(LinkList L)

/* 求带头结点单链表L的长度,并返回长度值。*/ /* 若L不是带头结点单链表,则返回-1。 */ {

if(NULL == L) return -1; int i =0;

while(NULL != L->next) {

LinkList q; q = L->next;

L->next = q->next; i++; }

return i; }

//62****************************************************************** /**********

【题目】试写一算法,在带头结点单链表L插入第i元素e。 带头结点单链表的类型定义为: typedef struct LNode { ElemType data; struct LNode *next; } LNode, *LinkList; **********/

Status Insert_L(LinkList &L, int i, ElemType e)

/* 在带头结点单链表L插入第i元素e,并返回OK。*/ /* 若参数不合理,则返回ERROR。 */ {

if(i == 0 ) return ERROR; LinkList q; LinkList p,p1,a,b; int j = 0 ,k;

q = (LNode*)malloc(sizeof(LNode)) ; q->data = e;

q->next = NULL;

p1 = L; b=L;

while(b !=NULL) {

a = b; b = a->next; k++; }

if(k < i ) return ERROR; while(j

p = p1; p1 = p->next; j++;

//if(p1 ==NULL) return ERROR; }

q->next = p->next; p->next = q; return OK; }

//64****************************************************************** /**********

【题目】试写一算法,在带头结点单链表删除第i元素到e。 带头结点单链表的类型定义为: typedef struct LNode { ElemType data; struct LNode *next; } LNode, *LinkList; **********/

Status Delete_L(LinkList &L, int i, ElemType &e)

/* 在带头结点单链表L删除第i元素到e,并返回OK。*/ /* 若参数不合理,则返回ERROR。 */ {

if(0 == i) return ERROR; int k,j=0;

LinkList q,p,p1,p2,p3;

p = L;

while(p->next !=NULL) {

p1 = p;

p = p1->next; k++;

}

if(k < i) return ERROR; if(k == i) {

p2 = L; while(j

p3 = p2; p2 = p3->next; j++; }

e = p2->data;

p3->next = NULL; return OK; } p2 = L; while(j

p3 = p2; p2 = p3->next; j++; }

e = p2->data; q = p2->next; p3->next = q; return OK; }

//66****************************************************************** /**********

【题目】试写一算法,在带头结点单链表的第i元素起的 所有元素从链表移除,并构成一个带头结点的新链表。 带头结点单链表的类型定义为: typedef struct LNode { ElemType data; struct LNode *next; } LNode, *LinkList; **********/

Status Split_L(LinkList L, LinkList &Li, int i)

/* 在带头结点单链表L的第i元素起的所有元素 */ /* 移除,并构成带头结点链表Li,返回OK。 */

/* 若参数不合理,则Li为NULL,返回ERROR。 */ {

if(i == 0) return ERROR; int j = 0 ,k = 0; LinkList p1,p2,p3;

Li = (LNode*)malloc(sizeof(LNode)); Li->next = NULL; p1 = L;

while(p1->next != NULL) {

p2 = p1;

p1 = p2->next; k++; } if(k < i) {

Li = NULL ; return ERROR; } p1 = L; while(j < i) {

p2 = p1;

p1 = p2->next; j++; }

p3 = p2->next; p2->next = NULL; Li->next = p3; return OK; }

//68****************************************************************** /**********

【题目】试写一算法,在带头结点单链表删除第i元素 起的所有元素。

带头结点单链表的类型定义为: typedef struct LNode { ElemType data; struct LNode *next; } LNode, *LinkList; **********/

Status Cut_L(LinkList L, int i)

/* 在带头结点单链表L删除第i元素起的所有元素,并返回OK。*/

/* 若参数不合理,则返回ERROR。 */ {

if(i == 0) return ERROR; int j = 0 ,k = 0;

LinkList p1,p2,p3,Li;

Li = (LNode*)malloc(sizeof(LNode)); Li->next = NULL; p1 = L;

while(p1->next != NULL) {

p2 = p1;

p1 = p2->next; k++; } if(k < i) {

Li = NULL ; return ERROR; } p1 = L; while(j < i) {

p2 = p1;

p1 = p2->next; j++; }

p3 = p2->next; p2->next = NULL; Li->next = p3; return OK; }

//是否要释放已占有的i元素以后的空间

//70****************************************************************** /**********

【题目】试写一算法,删除带头结点单链表中所有值 为x的元素,并释放被删结点空间。 单链表类型定义如下: typedef struct LNode { ElemType data; struct LNode *next; } LNode, *LinkList; **********/

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库广工数据结构anyview答案(2)在线全文阅读。

广工数据结构anyview答案(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/477709.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: