struct killed *kill(int w[length][length],int r,int c,int tag) { struct killed *p; struct position *s; struct stack S;
for (i=0;i S.top=-1; p->num=-1; if (w[r-1][c]==tag*(-1)) s->row=r-1; s->col=c; else if (w[r+1][c]==tag*(-1)) s->row=r+1; s->col=c; else if (w[r][c-1]==tag*(-1)) s->row=r; s->col=c-1; else if (w[r][c+1]==tag*(-1)) s->row=r; s->col=c+1; else p->len=0; return p; push(S,s); visited[s->row][s->col]=1; flag=search(s,tag); while ( (2)) { push(S,s); visited[s->row][s->col]=1; (3); } while (S->top>=0) { pop(S); (4); flag=search(s,tag); while (flag) { push(S,s); visit(s); flag=search(s); } } } void push( struct stack *S, struct position *s) { S->top++; S->node[S->top].row=s->row; S->node[S->top].col=s->col; p->num++; p->data[p->num].row=s->row; p->data[p->num].col=s->col; } void pop(struct stack *S) { S->top--; } struct position *gettop(struct stack *S) { struct position *s; s->row=S->data[S->top].row; s->row=S->data[S->top].row; return s; } int search(struct position *s,int tag) { int row,col; row=s->row; col=s->col; if (W[row+1][col]=(-1)*tag)&&(!visited[row+1][col]) { s->row=row+1;s->col=col; return 1;} if (W[row-1][col]=(-1)*tag)&&(!visited[row-1][col]) { s->row=row-1;s->col=col; return 1;} if (W[row][col+1]=(-1)*tag)&&(!visited[row][col+1]) { s->row=row;s->col=col+1; return 1;} if (W[row][col-1]=(-1)*tag)&&(!visited[row][col-1]) { s->row=row;s->col=col-1; return 1} (5); } 答案: (1)strlen(s)+strlen(t) (2)position+strlen(t) (3)target[i]=s[i-strlen(t)] (4)return a (5)return f(a,b-a) (6)q=aveage(head->next) (7) p->ave=(head->data+q->ave*q->num)/p->num (1)j (1)q[rear]=T (2)front lchild (4)count++ (5)flag (1)count (2)(x[i]>end[j])&&(x[i]-start[j]<=1) (3)start[j]=x[i] (4)!flag (5) (1)visited[i][j]=0 (2)flag (3)flag=search(s,tag) (4)s=gettop(S) (5)return 0 课已全部授完,也该收笔了.望对大家有所启发吧!