您的当前位置:首页正文

数据结构第2章习题答案

2024-08-09 来源:客趣旅游网
第2章习题答案

 习题2-1

1.79 62 34 57 26 48 2.26 34 48 57 62 79 3.48 56 57 62 79 34 4.56 57 79 34

5.26 34 39 48 57 62

 习题2-3 1.

ElemType delete_min(List &L) { int i,len,min; ElemType e;

if(Emptylist(L)

{ printf(‘线性表为空!\\n’); exit(1);} len=LenthList(L); min=1;

for(i=2;i〈=len;i++)

if(GetList(L,min)〉GetList(L,i)) min=i; e= GetList(L,min); DeleteList(L,e,min);

InsertList(L, GetList(L,LenthList(L)),min); return e; } 2。

bool delete_st(ListTyle &L, ElemType s, ElemType t) {

int i;

ElemType e; if(Emptylist(L)

{ printf(‘线性表为空!\\n’); return false;} i=1;

while(i〈=LenthList(L)) {

If(GetList(L,i)>=s&&GetList(L,i)<=t) DeleteList(L,e,i); else i++; }

return ture; }

4。

void MergeList( List La , List Lb , List &Lc ) { InitList(Lc);

int i=j=1 , k=0, La_len , Lb_len; ElemType a , b;

La_len = LenthList (La); Lb_len=LenthList (Lb); While ( ( i<=La_len) && ( j<=Lb_len ) ) { a=GetList( La , i ); b=GetList( Lb , j );

if ( a〈=b ) { InsertList ( Lc , a, ++k ) ; ++i ; } else { InsertList ( Lc , b , ++k ) ; ++j ; } }

while ( i〈=La_len)

{ a=GetList( La , i++ ) ; InsertList ( Lc , a, ++k ); while ( j〈=Lb_len )

{ b=GetList( Lb , j++ ) ; InsertList ( Lc , b,++k ); }//MergeList

 习题2—4 2。

ElemType GetMax(LNode* HL) { LNode* p;

ElemType max; If(HL==NULL)

{ cout<<”链表为空!”<max=p-〉data; while(p!=NULL)

{ if(max〈p->data) max=p—〉data; P=p—>next; }

return max; } 3.

int countList(LNode *HL, ElemType x ) {

LNode *p; int count=0;

for(p=HL; p!=NULL; p=p—〉next) if(p->data==x) count++; return count; } 4.

LNode* BuildLNode(int *a, int n)

} } {

int i;

LNode* HL,p,q;

HL=p=(int *)malloc(sizeof(LNode)); p—>data=a[0]; for(i=1;iq=(int *)malloc(sizeof(LNode)); q->data=a[i];

q—>next=NULL; p—>next=q; p=q; }

return HL; } 5。

LNode* MergeLNode(LNode *&La, LNode *&Lb) {

ElemType m; LNode *p;

while(Lb!=NULL) { m=Lb—〉data;

InsertList(La,m,0); p=Lb;

Lb=Lb—〉next; free(p); }

return La; }

习题2—6

要修改的地方如下: (1)初始化语句: LNode *cp=HL; LNode* ap=NULL; 改为:

LNode *cp=HL—>next; LNode* ap=HL;

(2)删除下列把新结点插入到表头的语句段: if(ap==NULL){

newptr—>next=HL; HL=newptr;} else

因篇幅问题不能全部显示,请点此查看更多更全内容