教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 基础教育 >

数据结构上机作业1-5章(10)

来源:网络收集 时间:2026-05-27
导读: e=A.data[s]; return OK; } return ERROR; } */ 5.26③ 试编写一个以三元组形式输出用十字链表表示的稀疏矩阵中非零元素及其下标的算法。 要求实现以下函数: void OutCSM(CrossList M); /* 以三元组格式输出十字链

e=A.data[s]; return OK; }

return ERROR; } */

5.26③ 试编写一个以三元组形式输出用十字链表表示的稀疏矩阵中非零元素及其下标的算法。 要求实现以下函数:

void OutCSM(CrossList M);

/* 以三元组格式输出十字链表表示的矩阵 */ 稀疏矩阵的十字链表存储表示: typedef struct OLNode {

int i,j; // 该非零元的行和列下标 ElemType e; // 非零元素值

OLNode *right,*down; // 该非零元所在行表和列表的后继链域 }OLNode, *OLink; typedef struct {

OLink *rhead,*chead; // 行和列链表头指针向量基址 int mu,nu,tu; // 稀疏矩阵的行数、列数和非零元个数 }CrossList;

void OutCSM(CrossList M, void(*Out3)(int, int, int))

/* 用函数Out3,依次以三元组格式输出十字链表表示的矩阵 */ { int i; OLink p;

for(i=0;i<=M.mu;i++) {

if(M.rhead[i])

for(p=M.rhead[i];p;p=p->right) Out3(i,p->j,p->e); } }

5.30③ 试按表头、表尾的分析方法重写求广义表的深度的递归算法。 要求实现以下函数: int GListDepth(GList ls); /* Return the depth of list */ 广义表类型GList的定义:

typedef enum {ATOM,LIST} ElemTag; typedef struct GLNode{ ElemTag tag; union {

char atom; struct {

GLNode *hp, *tp; } ptr; }un; } *GList;

int GListDepth(GList ls) /* Return the depth of list */ { int m,n;

if(ls==NULL) return 1;

else if(ls->tag==0) return 0;

m=GListDepth(ls->un.ptr.hp)+1; n=GListDepth(ls->un.ptr.tp); if(m>n) return m; else return n; } /*

{ int m,n;

if(ls==NULL) return 1;

else if(ls->tag==0) return 0; m=GListDepth(ls->ptr.hp)+1; n=GListDepth(ls->ptr.tp); return m>n?m:n; } */

5.33④ 试编写递归算法,输出广义表中所有原子项及其所在层次。 广义表类型GList的定义:

typedef enum {ATOM,LIST} ElemTag; typedef struct GLNode{ ElemTag tag; union {

char atom; struct {

GLNode *hp, *tp; } ptr; }un; } *GList;

void OutAtom(GList A, int layer, void(*Out2)(char, int))

/* 递归地用函数Out2输出广义表的原子及其所在层次,layer表示当前层次 */ {

if(!A) return ;

if(!A->tag) Out2(A->un.atom,layer); else {

OutAtom(A->un.ptr.hp,layer+1,Out2); OutAtom(A->un.ptr.tp,layer,Out2); } }

数据结构上机作业1-5章(10).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/565287.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)