C语言数据结构编程题(4)

2020-05-07 09:03

for(iTmp=0 ; iTmp < iMax; iTmp++) 串中最长的连续数字串赋值给结果 串

// 将原字符

strResult[iTmp] = strSource[iHead++]; strResult[iTmp]='\\0'; return iMax; 数字的最大长度 }

int main(int argc, char* argv[]) {

char strSource[]=\strResult[sizeof(strSourc e)];

printf(\GetSubString(strSource, strResult), strResult, strSource); }

12、四个工人,四个任务,每个人做不同的任务需要的时间不同,求任务分配的最优方案。

(2005年5月29日全国计算机软件资格水平考试——软件设计师的算法题)。 #include \#define N 4

// 返回连续

int Cost[N][N] = { {2, 12, 5, 32}, // 行号:任务

序号,列号:工人序号

{8, 15, 7, 11}, 值表示这个任务由不同工人完成所需 要的时间

{24, 18, 9, 6}, {21, 1, 8, 28}}; int MinCost=1000;

int Task[N], TempTask[N], Worker[N]; void Assign(int k, int cost) {

if(k == N) {

MinCost = cost;

// 每行元素

for(int i=0; i

TempTask[i] = Task[i];

} else {

for(int i=0; i

if(Worker[i]==0 && cost+Cost[k][i] <

MinCost) { // 为提高效率而进行剪枝

}

Worker[i] = 1;

Task[k] = i;

Assign(k+1, cost+Cost[k][i]); Worker[i] = 0; Task[k] = 0;

}

}

}

int main(int argc, char* argv[]) {

Assign(0, 0);

printf(\最佳方案总费用=%d\\n\for(int i=0; i

/* 输出最佳方案 */

printf(\任务%d由工人%d来做:%d\\n\

TempTask[i], Cost[i][TempTask[i]]); }

13、八皇后问题,输出了所有情况,不过有些结果只是旋转了90度而已。(回溯算法的典型

例题,是数据结构书上算法的具体实现,大家都亲自动手写过这个程序吗?) #define N 8 int Board[N][N];

int Valid(int i, int j) { 否有效

int k = 1;

for(k=1; i>=k && j>=k;k++)

if(Board[i-k][j-k])

return 0;

// 判断下棋位置是

for(k=1; i>=k;k++)

}

if(Board[i-k][j]) return 0;

for(k=1; i>=k && j+k

if(Board[i-k][j+k])

return 0;

return 1;

void Trial(int i, int n) { 置

if(i == n) {

// 寻找合适下棋位

for(int k=0; k

printf(\

for(int m=0; m

printf(\

printf(\

} else { }

for(int j=0; j

Board[i][j] = 1; if(Valid(i,j))

Trial(i+1, n);

Board[i][j] = 0;

}

int main(int argc, char* argv[]) { }

14、实现strstr功能,即在父串中寻找子串首次出现的位置。(笔试中常让面试者实现标准 库中的一些函数)

char * strstring(char *ParentString, char *SubString) {

char *pSubString, *pPareString;

for(char *pTmp=ParentString; *pTmp; pTmp++) {

pSubString = SubString; pPareString = pTmp;

Trial(0, N);

while(*pSubString == *pPareString &&

*pSubString != '\\0') { }

int main(int argc, char* argv[]) {

}

return NULL;

}

if(*pSubString == '\\0') return pTmp;

pSubString++; pPareString++;


C语言数据结构编程题(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:M1 U1 单元学案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: