资源描述:
《西电_c++_面向对象程序设计_软件技术基础_课后答案 》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件技术基础习题答案习题3四、1intcompare(SeqList*La,SeqList*Lb){inti;i=1;while(i<=La->last&&i<=Lb->Last&&La->data[i]==Lb->data[i])i++;if(i<=La->last&&j>Lb->last
2、
3、La->data[i]>Lb->data[i])return1;//A>Bif(i>La->last&&j<=Lb->last
4、
5、La->data[i]data[i])return-1;//ALa->last&&j>Lb->last)return0
6、;//A=B}四、2(1)顺序表intinvert(SeqList*L){24inti=1;datatypetemp;while(i<=L->last/2){temp=L->data[i];L->data[i]=L->data[L->last-i+1];L->data[L->last-i+1]=temp;}}(2)链表voidinvert(linklist*head){linklist*p,*q,*r;p=head->next;q=p->next;while(q!=NULL){r=q->next;q->next=p;p=q;q=r;}24head->next->
7、next=NULL;head->next=p;}四、5voidmergelist(Linear_list*La,Linear_list*Lb,Linear_list*&Lc){Lc=(Linear_list*)malloc(sizeof(Linear_list));//产生C表的头结点头插法Lc->next=NULL;while(La->next!=NULL&&Lb->next!=NULL)//La、Lb均非空if(La->next->data<=Lb->next->data){p=La->next;La->next=La->next->next;insert(
8、Lc,p);}else{p=Lb->next;Lb->next=Lb->next->next;insert(Lc,p);24}while(La->next!=NULL){p=La->next;La->next=La->next->next;insert(Lc,p);}while(Lb->next!=NULL){p=Lb->next;Lb->next=Lb->next->next;insert(Lc,p);}}//O(Length(La)+Length(Lb))voidinsert(Linear_list*Lc,Linear_list*p){p->next=Lc-
9、>next;Lc->next=p;}//O(1)四、8voiddeleteFront(Link*s)24{Link*p=s,*q;while(p->next->next!=s)p=p->next;q=p->next;p->next=s;free(q);}习题4四、1intsymmetry(linklist*head,stack*s)//具有头结点的单链表中存放有一个字符串,每个结点的数据域存放一个字符。//head为单链表的头指针,s为栈的结构体指针{intn=length(head)/2;linklist*p=head->next;datatypex;for(
10、inti=0;idata);p=p->next;}24if(length(head)%2==1)p=p->next;while(p!=NULL){x=pop(s);if(x==p->data)p=p->next;elsereturn0;}return1;}四、3voiddelete(Stack*s){Stack*temp;datatypex;InitS(temp);while(!EmptyS(s)){x=Pop(s);if(x!=m)Push(temp,x);}while(!Empty(temp))Push(s,Pop(tem
11、p));}24四、4intcorrect(char*exp){InitStack(S);intflag=1;i=0;while(exp[i]!=' '&&flag){if(exp[i]=='('
12、
13、exp[i]=='['
14、
15、exp[i]=='{')Push(S,exp[i]);//遇左括号入栈if(exp[i]==')')if(Pop(S)!='(')flag=0;if(exp[i]==']')if(Pop(S)!='[')flag=0;if(exp[i]=='}')if(Pop(S)!='{')flag=0;//遇右括号出栈,若栈顶不是左括号,则括号不配对i
16、++;}if(!Empt