(10) P->priou->next=P; (11) P->next->priou=P; (12) P->next->priou=S; (13) P->priou->next=S; (14) P->next->priou=P->priou; (15) Q=P->next; (16) Q=P->priou; (17) free(P); (18) free(Q);
解: a. (7) (3) (6) (12)
b. (8) (4) (5) (13) c. (15) (1) (11) (18) d. (16) (2) (10) (18) e. (14) (9) (17)
(1)
Status
A(LinkedList
{
A
a1 ,
, am B
b1 ,
, bn
A B A B A
B A B A
A B A
B A B
a1, , an
an ,
, a1
A
a1 , a2 ,
, am
B
C
a1 ,b1,
, am ,bm ,bm 1,
,bn
m n C
a1 , b1 ,
, an , bn , an 1 ,
L
a1, a2 ,
,an
L a1 , a3,
, an ,
,a4 , a2
.,an)
改 (a1,a3,...,an,...,a2)
Status ListChange_DuL(DuLinkList &L)
L)
B
A B
b1 ,b2 ,
, bn
, am
m n
造 为
简述以下算法的功能。
{
int i;
DuLinkList p,q,r; p=L->next; r=L->pre; i=1;
while(p!=r){
if(i%2==0){
q=p;
p=p->next;
m 1
Pn
x
c1 xe1
c2 xe2
cm xem
n em
e
e1
0
ci
0 i
1,2,
,m
m 1 Pn x0 x0 P x
pj pk pi
Pn1 x Pn2 x p1 p2
pn p j pk pi p j pk pi p j pk pi pi p j pk
2 n 1olor;
Push(s,g[][]);
while(!StackEmpty(s)){
Pop(s,e); CurPos=;
g[][].Color=FillColor; g[][].Visited=1;
if !g[+1][].Visited && g[+1][].Color==OldColor ) Push(s,g[+1][]); if>0 && !g[][].Visited && g[][].Color==OldColor ) Push(s,g[][]); if !g[][+1].Visited && g[][+1].Color==OldColor ) Push(s,g[][+1]); if>0 && !g[][].Visited && g[][].Color==OldColor ) Push(s,g[][]); } } void CreateGDS(ElemType g[M][N]) { int i,j; for(i=0;i for(j=0;j g[i][j].=i; g[i][j].=j; g[i][j].Visited=0; g[i][j].Color=0; } for(i=2;i<5;i++) for(j=2;j<4;j++) g[i][j].Color=3; for(i=5;i for(j=3;j<6;j++) g[i][j].Color=3; } void ShowGraphArray(ElemType g[M][N]) { int i,j; for(i=0;i for(j=0;j cout< cout< } } 假设表达式有单字母变量和双目四则运算符构成。试写一个算法, 将一个通常书写形式且书写正确的表达式转换为逆波兰表达式。 解: .# 格式
严蔚敏版本数据结构课后习题包括答案完整版本.docx



