delete
#include<iostream>#include <iomanip>using namespace std;const int N = 6;//递归求解矩阵连乘问题int RecurMaxtrixChain(int *p, int i, int j, int **s){ if(i == j) return 0; int u = RecurMaxtrixChain(p, i, i, s) + RecurMaxtrixChain(p, i + 1, j, s) + p[i - 1] * p[i] * p[j]; s[i][j] = i; for(int k = i + 1; k < j; k++){ int t = RecurMaxtrixChain(p, i, k, s) + RecurMaxtrixChain(p, k + 1, j, s) + p[i - 1] * p[k] * p[j]; if(t < u){ u = t; s[i][j] = k; } } return u;}//输出结果void View(int i,int j,int **s) { if (i == j) { cout<<"A"<<i; return; }else if (i < j) { cout<<"("; View(i,s[i][j],s); View(s[i][j] + 1,j,s); cout<<")"; } return;}void RecurTest(){ int p[] = {30, 35, 15, 5, 10, 20, 25}; int **s = new int * [N + 1]; for(int i = 1; i <= N; i++) { *(s + i) = new int[N]; } RecurMaxtrixChain(p, 1, N, s); View(1, N, s); for(int i = 1; i <= N; i++) delete *(s + i); delete s;}void main(){ //TraceTest(); //矩阵连乘 RecurTest(); //递归矩阵连乘 getchar();}