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

2015广工数据结构答案(4)

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

}

/**********

【题目】试写一算法,实现链队列的判空操作。 链队列的类型定义为:

typedef struct LQNode { ElemType data;

struct LQNode *next;

} LQNode, *QueuePtr; // 结点和结点指针类型 typedef struct {

QueuePtr front; // 队头指针 QueuePtr rear; // 队尾指针 } LQueue; // 链队列类型 ***********/

Status QueueEmpty_LQ(LQueue Q)

/* 判定链队列Q是否为空队列。 */ /* 若Q是空队列,则返回TRUE,否则FALSE。*/ {

if(Q.front==NULL) return TRUE; else return FALSE; }

/**********

【题目】试写一算法,实现链队列的求队列长度操作。 链队列的类型定义为:

typedef struct LQNode { ElemType data;

struct LQNode *next;

} LQNode, *QueuePtr; // 结点和结点指针类型 typedef struct {

QueuePtr front; // 队头指针 QueuePtr rear; // 队尾指针 } LQueue; // 链队列类型 ***********/

int QueueLength_LQ(LQueue Q)

/* 求链队列Q的长度并返回其值 */ { if(Q.front==NULL) return 0; int i=1;

QueuePtr p; p=Q.front;

while(p!=Q.rear){ p=p->next; i++; }

return i;

}

/**********

【题目】假设以带头结点的循环链表表示队列,并且 只设一个指针指向队尾元素结点(注意不设头指针), 试编写相应的队列初始化、入队列和出队列的算法。 带头结点循环链队列CLQueue的类型定义为: typedef struct LQNode { ElemType data;

struct LQNode *next; } LQNode, *CLQueue; **********/

Status InitCLQueue(CLQueue &rear) // 初始化空队列 {

rear=(LQNode*)malloc(sizeof(LQNode)); if(rear==NULL) return ERROR; rear->next=rear; return OK; }

Status EnCLQueue(CLQueue &rear, ElemType x) // 入队 { CLQueue p;

p=(LQNode*)malloc(sizeof(LQNode)); if(p==NULL) return ERROR; p->data=x;

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

Status DeCLQueue(CLQueue &rear, ElemType &x) // 出队 {CLQueue p,t; t=rear->next;

if(t==rear) return ERROR; p=t->next; x=p->data;

t->next=p->next; free(p);

return OK; }

/**********

【题目】试写一算法,实现带头结点单链表的判空操作。

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

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

Status ListEmpty_L(LinkList L)

/* 判定带头结点单链表L是否为空链表。 */ /* 若L是空链表,则返回TRUE,否则FALSE。*/ {if(L->next==NULL) return TRUE; else return FALSE; }

/**********

【题目】试写一算法,实现带头结点单链表的销毁操作。 单链表的类型定义为: typedef struct LNode { ElemType data; struct LNode *next;

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

Status DestroyList_L(LinkList &L)

/* 销毁带头结点单链表L,并返回OK。*/ { LinkList p; p=L->next;

while(p!=NULL){ L->next=p->next; free(p); p=L->next; } free(L); return OK; }

/**********

【题目】试写一算法,实现带头结点单链表的清空操作。

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

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

Status ClearList_L(LinkList &L)

/* 将带头结点单链表L置为空表,并返回OK。*/ /* 若L不是带头结点单链表,则返回ERROR。 */ { if(L==NULL) return FALSE; LinkList p; p=L->next;

while(p!=NULL){ L->next=p->next; free(p); p=L->next; }

return OK; }

/**********

【题目】试写一算法,实现带头结点单链表的求表长度操作。 单链表的类型定义为: typedef struct LNode { ElemType data; struct LNode *next;

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

int ListLength_L(LinkList L)

/* 求带头结点单链表L的长度,并返回长度值。*/ /* 若L不是带头结点单链表,则返回-1。 */ { int i=0; LinkList p;

if(L==NULL) return -1; p=L->next;

while(p!=NULL){ p=p->next; i++; } return i; }

/**********

【题目】试写一算法,在带头结点单链表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。 */ { int j;

LinkList p,t=L;

if(i<=0) return ERROR; if(L==NULL) return ERROR;

p=(LNode*)malloc(sizeof(LNode)); if(p==NULL) return ERROR; for(j=1;jnext;

if(t==NULL) return ERROR; }

p->data=e;

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

/**********

【题目】试写一算法,在带头结点单链表删除第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。 */ { int j;

LinkList p,t=L;

if(i<=0) return ERROR;

if(L->next==NULL||L==NULL) return ERROR; for(j=1;jnext;

if(t->next==NULL) return ERROR; }

p=t->next; e=p->data;

t->next=p->next; free(p);

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

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