《数据结构》程序填空复习题.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
精品文档 精品文档 PAGE PAGE #欢迎下载 精品文档 精品文档 PAGE PAGE #欢迎下载 《数据结构》程序填空复习题 说明:本文档中涉及到的算法并非本书的全部,有些可根据此处的情况自行看书和作业题, 黑色为综合练习上的题目,红色为我另增加的题,这些空的选择是根据我个人的经验来决 定的并不能完全代表中央电大的出卷老师,因此一定不能有肯定就考这些题目的想法。不 能放弃其他内容的复习,切记! !! 一、线性表 设线性表为(6,10,16,4),以下程序用说明结构变量的方法建立单向链表,并输出链 表中各结点中的数据。 #defi ne NULL 0 void mai n() {NODE a,b,c,d,*head,*p; data=6; data=10; data=16; data=4; /*d 是尾结点 */ head= ( 1) ; n ext=&b; n ext=&c; n ext=&d; (2) ;_/* 以上结束建表过程*/ p=head; /*p为工作指针,准备输出链表*/ do {printf( %d\n” _( 3) ); (4); }while( _( 5) ); } 答案: (1)&a (2)d next=NULL (3) p->data (4) p=p->next (5)p!=NULL 以下函数在head为头指针的具有头结点的单向链表中删除第 i个结点, struct node { int data; struct node *n ext; }; typedef struct n ode NODE int delete(NODE *head,i nt i ) { NODE *p,*q; int j; q=head; j=0; while((q!=NULL)&&( ___⑴ )) { —(2) ; j++; } if(q==NULL) return(O); TOC \o "1-5" \h \z p=—⑶ ; (4) =p->n ext; free(___⑸ ); return(1); } 答案: j<i-1 q=q_>next q->next q_>next p 3.将新元素插入到线性表中的第i位,MAX是数组的个数,a[0]用以存放线性表长度,b存 3.将新元素插入到线性表中的第 放待插入的元素值,i 放待插入的元素值,i存放插入的位置, n存放线性表长度 int i,j,b,n; sca nf( %d%d%d&b, & i,&n); for(j=1;j<=n ;j++) scanf( %c” &a[j]); a[0]=n; for(j=n; (1) ;j-_-) TOC \o "1-5" \h \z ; ; ; for(j=1;j<=a[0];j++) printf( %5d\n”a[j]); } 答案: j>=i a[j+1]=a[j] a[i]=b a[0]=n+1 4.用头插法建立带头结点且有 n个结点的单向链表的算法 NODE *create( n) { NODE *head,*p,*q; int i p=(NODE *)malloc(sizeof(NODE)); TOC \o "1-5" \h \z ; ; ; for(i=1;i<=n ;i++) { p=(NODE *)malloc(sizeof(NODE)); p->data=i; if(i==1) ( 4); else { ( 5) ; ( 6) ; } } return(head); } 答案: head=p p->next=NULL q=p p->next=NULL p_>next=q_>next q_>next=p 栈 以下函数为链栈的进栈操作, x是要进栈的结点的数据域,top为栈顶指针 struct node { ElemType data; struct node *n ext; }; struct node *top ; void Push(ElemType x) { struct node *p; p=(struct node*)malloc( (1) ); p->data=x; —⑵ ; } 答案: sizeof (struct no de) p_>next=top top=p 二、 队列 分别以下函数为链队列的入队操作, x为要入队的结点的数据域的值, front、rear 分别 是链队列的队头、队尾指针 struct node { ElemType data; struct node *n ext; }; struct node *front , *rear; void lnQueue(ElemType x) { struct node *p; TOC \o "

文档评论(0)

157****8632 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档