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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构严蔚敏上机代码完整版Word文件下载.docx

1、当前存储空间已满,增加分配* )realloc(L.elem,(Listsize+LISTINCREMENT)*sizeof(ElemType);if(!newbase)exit(OVERFLOW); / 存储分配失败L.elem =newbase; 新基址L. listsize +=LISTINCREMENT; / 增加存储容量q=&(L.elem i-1); q 为插入位置for(p=&(L.clcm L.lcngth -l);p=q;-p)*(p+l)=*p; /插入位置及之后的元素右移*q=e; 插入 e+L.length ; 表长增 1return OK;)/ListInsert_S

2、qStatus ListDclete_Sq(SqList &L,int LElcmTypc &c)在顺序线性表L中删除第i个元素,并用c返回其值/i 的合法值为 l=ListLength_Sq(L)=L.length) return i;else return 0;)/LocateEIem_Sqvoid MergeList_Sq(SqList La.SqList Lb,SqList &Lc )已知顺序线性表La和Lb的元素按值非递减排列归并La和Lb得到新的顺序线性表Lc, Lc的元素也按非递减排列ElemType *pa,*pb,*pc,*pajast,*pbJast;pa=La.elem;

3、pb=Lb.elem;Lc.listsize =Lcength =Laength +LK1 ength ;pc=Lc.eleni =(ElemType *)inalloc(Lc.listsize *sizeof(ElemType);Lc.elem )exit(OVERFLOW); /存储分配失败paJast=La.elem + La.length -1;pb_last=Lb.elem +Lbength -1;while(pa=pa_last & pb=pbast)归并if(*pa=*pb)*pc+=*pa+;else*pc+=*pb+;=pa_last) *pc+=*pa+; 插入 La 的剩

4、余元素while(pbnext:intj=l; 初始化,p指向第一个结点,j为计数器while(p&jvi)顺指针向后查找,直到p指向第i个元素或p为空 p=p-+j;pllji)return ERROR; 第i个元素不存在e=p-data; 取第i个元素return OK:)/GetEIem_LStatus ListInsert_L(LinkList &LJnt i,ElemType e)在带头结点的单链线性表L中第i个位宜之前插入元素eLinkList p,s;p=L;int j=0;jvil)p=p-next; 寻找第i-1个结点i-l ) return ERROR; /i 小于或者大于

5、表长+1 s=(LinkList)nialloc (sizeof(LNode); 生成新结点s-data=e;next=p- 插入 L 中p-next=s;/ListInsert_LStatus ListDeIete_L(LinkList &Lint i.ElemType &在带头结点的单链线性表L中,删除第i个元素,并由c返回其值LinkList p.q;while(p-next&jnext)llji-l) return ERROR; 删除位垃不合理q=p-next=q- 删除并释放结点e=q-free(q);)/ListDelete_Lvoid CreateList_L(LinkList

6、&L jnt n)逆位序输入n个元素的值,建立带表头结点的单链线性表LLinkList p;L=(LinkList)malloc(sizeof(LNode);L-next =NULL: 先建立一个带头结点的单链表for(int i=n;i0;-i)p=(LinkList)malloc (sizeof(LNode);scanf(n%dM,&data); 输入元素值next=L-next =p; 插入到表头)/CreateList_Lvoid display(LinkList L) LinkList p=L-泄义for循环函数 while(p)(printf(n%d/p- p=p-Xn11);vo

7、id inain()LinkList L;CreateList_L(L.3); display(L);ListInsert_L(L,2J 00);ElemType e;ListDelete_LXL,2,e);printfC 被删除的值=%dn”,e);GetElem_L(U3x);prin叱获取的值=%dn,e);第四次上机#include include =S.stacksize )/栈满,追加存储空间S.base =(SElemType * )realloc(S.base JS.stacksize +STRCKINCREMENT) * sizeof(SElemType);S.top =S.

8、base +S.stacksize ;S.stacksize +=STRCKINCREMENT:* S.top +=c: return OK;)/PushStatus Pop(SqStack &S.SElemType &若栈不空,则删除S的栈顶元素,用e返回其值,并返回0K;否则返回ERRORif(S.top =S.base )return ERROR;e=*-S.top;/PopStatus StackEmpty(SqStack S)if(S.top=S.base)return TRUE;else return ERROR: void conversion()/对于输入的任意一个非负十进制整

9、数,打印输出与其等值的八进制数SqStack S;int N;SElcmTypc e;InitStack(S); 构造空栈scanf(,%d,&N);while(N)Push(S,N % 8);N=N/8;printf(”转换成八进制后的数为:”);while(!StackEmpty(S)Pop(S.e);printf(,%d,e);printf(HnM);/conversion void main()SElemType c,x;Push(S5);Push(S4);Push(S3);Push(S2);Push(SJ);GetTop(Sx); printfC* 栈顶元素为 %diie);prin

10、tf(Hn,r);Pop(S.x);删除的栈顶元素为dn,x);printf(,nH);输入一个十进制数: conversion();第五次上机/*队列的链式存储钉#define FALSE 0typedef int QElemTpe;typcdcf int Status;typedef stmet QNodeQElemType data; struct QNode *next;QNode,*QueuePtr;typedef stnictQueuePtr front; 队头指针QueuePtr rear; 队尾指针JLinkQueue;Status InitQueuc(LinkQueue &Q

11、)/构造一个空队列QQ.front =Q.rear =(QueuePtr)malloc(sizeof(QNode);Q.front )exit(OVERFLOW);Q.front -next =NULL;Status DestroyQueue(LinkQucue &销毁队列Qwhile(Q.front)Q.rear =Q.front -free(Q.front);Q.front =Q.rear;Status EnQueue(LinkQueue &Q.QElcmTypc e)插入元素e为Q的新的队尾元素QueuePtr p;p=(QueucPtr)maIloc zcof(QNodc);p)exi

12、t(OVERFLOW);next=NULL;Q.rear Q.rear =p:Status DeQucue(LinkQueue &Q.QElemType &若队列不为空,则删除Q的队头元素,用e返回其值,并返回0K:否则返回ERRORif(Q.front =Q.rear )return ERROR;p=Q.front -next =p-if(Q.rear =p)Q.rear =Q.front;free(p);)void disp(LinkQueuc Q)p=Q.front-左义for循环函数while(p)printf(H%d *p-printf(MnH);void main()LinkQue

13、ue Q;QElemType e;InitQueue(Q);插入的元素为:EnQueue(Q,25);EnQueue(Q.5);EnQueue(QJ2);EnQueue(Q,60);EnQueue(Q33);disp(Q);printfC删除队头元素后:DeQueue(Qx);DestroyQueue(Q);if(DestroyQueue(Q )= 1) printfC销毁队列成功! n); elseprintfC销毁队列失败!附加:/*队列的顺序存储*/最大队列长度#dcfine MAXQSIZE 100typcdef stmct QElemType *base int front; int

14、 rear;JSqQueue;/初始化的动态分配存储空间头指针,若队列不空,指向队列头元素尾指针,若队列不空,指向队列尾元素的下一个位置Status InitQueue(SqQueue &构造一个空队列Q.base =(QElcmTypc *)malloc(MAXQSIZE * sizeof(QElcmType);Q.base )exit(OVERFLOW);Q.front =Q.rear =0;int QueueLenth(SqQueue Q)返回Q的元素个数,即队列的长度return(Q.rear Q.from +MAXQSIZE)%MAXQSIZE:Status EnQueue(SqQu

15、eue &Q.QElemType e)if(Q.rear +1)% MAXQSIZE =Q.front) return ERROR; 队列满 Q.base Q.rear =e;Q.rear =(Q.rear+1) % MAXQSIZE;Status DeQueue(SqQueue &若队列不为空,则删除Q的队头元素,用e返回其值,并返回OK:if(Q.front =Q.rear) return ERROR;e=Q.base Q.front ;Q.front =(Q.front+l)% MAXQSIZE:第六次上机#define TRUE 1typedef char TElemType;/二叉树

16、的二叉链表存储表示typedef stmet BiTNodeTEIemT-pe data;struct BiTNode *lchild?rchild; /左右孩子指针BiTNode,*BiTree;Status CrcatcBiTree( BiTree &T)/按先序次序输入二叉树中结点的值(一个字符),空格字符表示空树,构造二叉树链表表示的二叉树Tchar ch;scai】f(”c:ch);if(ch=* *)T=NULL;else(T=(BiTNode *)malloc(sizeof(BiTNode) exit(OVERFLOW);T-data =ch; 生成根结点CreateBiTree(T-lchild); 构造左子树rchild); 构造右子树)/CreateBiTrecvoid PreOrderTraverse(BiTree T)先序遍历printf(H%c gdata); 输出结点PreOrderTraverse(T-lchild );rchild );void InOrderTraverse(BiTree T)中序遍历print

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

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