ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:17.53KB ,
资源ID:5864686      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5864686.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构实验15答案.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构实验15答案.docx

1、数据结构实验15答案数据结构实验、设计序链表,要求:()链表的基本操作:初始化、求数据元素个数、插入、删除和取数据元素。()设计一个测试主函数,验证链表的正确性。#include#include#define ERROR -1#define OK 1typedef struct Node char data; struct Node * next;Node, * LinkList;void InitList(LinkList * L) *L = (LinkList)malloc(sizeof(Node); (*L)-next = NULL;void CreateFromHead(LinkLis

2、t L) /*头插法*/ Node *s; char c; int flag = 1; printf (输入要插入的结点,输入$结束); while (flag) c=getchar(); if (c!=$) s=(Node *)malloc(sizeof(Node); s-data =c; s-next=L-next; L-next=s; else flag=0; Node *get(LinkList L,int i) /*查找*/ int j; Node *p; if (inext!=NULL)&(jnext; j+; if(i=j) return p; else return NULL;

3、int ListLength(LinkList L) /*求长度*/ Node *p; int j; p=L-next; j=0; while (p!=NULL) p = p- next; j+; return j;int DelList(LinkList L,int i,char *e) /*删除*/ Node *pre,*r; int k; pre=L; k=0; while(pre-next!=NULL & k next; k=k+1; if (!(pre-next) printf(删除结点的位置i不合理!); return ERROR; r=pre-next; pre-next=pre

4、-next-next; e=r-data; free(r); return OK;main () Node *p; int i; char * e=0,m=0; LinkList L; InitList(& L); CreateFromHead( L); i=ListLength( L); printf (输入要删除的结点n); scanf (%d,&i); DelList( L, i, e); printf (输入要提取的结点n); scanf (%d,&i); p=get ( L, i); printf (长度为%dn,i); printf (结点=%c,p-data); 2、 堆栈设计,

5、要求:(1) 设计顺序堆栈,堆栈的操作包括:初始化,非空否,入栈,取栈顶数据元素。(2) 设计一个主函数对顺序堆栈进行测试。#include#define M 50#define FALSE -1#define TRUE 1typedef struct stack int elemM; int top;SeqStack;void InitStack (SeqStack *s) s- top = -1;int push (SeqStack *s, int x) if (s-top = M-1) return (FALSE); s -top+; s -elems-top=x; return (TR

6、UE);int GetTop (SeqStack *s, int x) if (s-top=-1) return (FALSE); else x = s-elems-top; return (x); void main() int m,p; SeqStack s; InitStack (&s); printf (输入数据,输入0结束); while (m) scanf (%d,&m); push (&s,m); printf(取栈顶数据元素输入1,否则输入0); scanf (%d,&m); if (m = 1) p=GetTop (&s,m); printf (栈顶数据元素%d,p);上机实

7、验3:编写一个函数,完成字符串S1寻找子字符串S2(匹配),并编写主函数测试所编写程序。#include#include#define MaxSize 100typedef struct /定义串 char strMaxSize; int len;String;void Display(String *s) /显示s串 int i; printf(n); for(i=0;ilen;i+) printf(%c,s-stri);void StrDelete(String *s,int i,int k) /*删掉s串中位置i开始的k个字符*/ int j; if (is-len | i+ks-len

8、) printf(位置参数值错误n); else for (j=i+k;jlen;j+) /*将s的第i+k个位置之后的字串前移k位*/ s-strj-k=s-strj; s-len=s-len-k; /*修改s长度*/ s-strs-len=0; StrIndex(String s,String t) /*求s串中t子串的位置(从0开始)*/ int i=0,j=0; while(is.len & jt.len) if(s.stri=t.strj) i+; j+; else i=i-j+1; j=0; if(j=t.len) printf(子串是); for(i=0;is-len) prin

9、tf(位置参数值错误n); else for (j=i;jlen;j+) /*将s的第i个位置之后的字串复制到r中*/ r.strj-i=s-strj; r.len=j-i; r.strr.len=0; for (j=0;jstri+j=t.strj; for(j=0;jstri+t.len+j=r.strj; s-len=s-len+t.len; /*修改s串长度*/ s-strs-len=0; void StrAssign(String *s, char t)/*s串内容由t串内容代替*/ int i=0; while(ti!=0) s-stri=ti; i+; s-stri=0; s-l

10、en=i;void main() String a,b; char c20; printf(请输入字串s1n); scanf(%s,c); StrAssign(&a,c); a.len=20; printf(请输入三位数字串s2n); scanf(%s,c); StrAssign(&b,c); b.len=3; StrIndex(a, b); Display(&a); Display(&b); getch();上机实验4:设矩阵、为压缩存储方式的阶上角矩阵,矩阵元素为整数,要求:(1) 编写实现矩阵加的函数;(2) 编写实现的函数;编写主程序测试#include#include#include

11、#define MAXSIZE 100 /*非零元素的个数最多为100*/ /*稀疏矩阵三元组表的类型定义*/ typedef struct int row,col; /*该非零元素的行下标和列下标*/ int e; /*该非零元素的值*/Triple; typedef struct Triple dataMAXSIZE+1; /* 非零元素的三元组表。data0未用*/ int m,n,len; /*矩阵的行数、列数和非零元素的个数*/TSMatrix; void AddTSMatrix(TSMatrix A, TSMatrix B, TSMatrix *C) /*矩阵B和矩阵A相加*/ i

12、nt i=0,j=0; C-m = A.m; C-n = A.n; C-len = 0; while(iA.len&jdataC-len.row = A.datai.row; C-dataC-len.col = A.datai.col; C-dataC-len+.e = A.datai.e+B.dataj.e; i+; j+; else if(A.datai.row = B.dataj.row)&(A.datai.col B.dataj.col) C-dataC-len.row = B.dataj.row; C-dataC-len.col = B.dataj.col; C-dataC-len+

13、.e = B.dataj.e; j+; else if(A.datai.row = B.dataj.row)&(A.datai.col dataC-len.row = A.datai.row; C-dataC-len.col = A.datai.col; C-dataC-len+.e = A.datai.e; i+; else if(A.datai.row B.dataj.row) C-dataC-len.row = B.dataj.row; C-dataC-len.col = B.dataj.col; C-dataC-len+.e = B.dataj.e; j+; else /if(A.da

14、tai.row dataC-len.row = A.datai.row; C-dataC-len.col = A.datai.col; C-dataC-len+.e = A.datai.e; i+; if(i=A.len&jdataC-len.row = B.dataj.row; C-dataC-len.col = B.dataj.col; C-dataC-len+.e = B.dataj.e; j+; else if(idataC-len.row = A.datai.row; C-dataC-len.col = A.datai.col; C-dataC-len+.e = A.datai.e;

15、 i+; void ShowTSMatrix(TSMatrix M)/*打印矩阵M*/ int i,j,dir=0; for (i=0;iM.m;i+) for (j=0;jlen=0; for (i=0;im;i+) for (j=0;jn;j+) if(rand()dataM-len.row = i; M-dataM-len.col = j; M-dataM-len.e = 1; M-len+; void main() TSMatrix A, B, C; A.m=5; A.n=5; B.m=5; B.n=5; srand( (unsigned)time(NULL) ); InitTSMat

16、rix(&A); printf(The matrix A is:n); ShowTSMatrix(A); InitTSMatrix(&B); printf(The matrix B is:n); ShowTSMatrix(B); AddTSMatrix(A, B, &C); printf(The matrix C is:n); ShowTSMatrix(C);上机实验5:#includevoid main() void print(int w); int n; scanf(%d,&n); print(n); void print(int w) int i; if(w!=0) print(w-1); for(i=1;i=w;+i) printf(%3d,w); printf(n);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1