1、用顺序存储实现并输出前后结果,int a[5]={2,4,6,8},插入x=5的元素2、用顺序存储实现并输出前后结果,int a[5]={1,3,5,7,9},删除x=5的元素3、将两个递增有序的线性表合并,新线性表仍然递增有序(用顺序存储结构)输出三个线性表,int a[5]={1,3,5,7,9} b[5]={2,4,6,8,10} c[10]4、利用栈结构,编程实现十进制转换为十六进制的任务5、菲波那切数列的值满足f(N)=f(n-1)+f(n-2),编递归程序计算改值得第五项6、编写串比较函数Campare(s,t),要求输入三种情况的字符串,验证结果7、试编写从S串中删除一个子串T的算法,子串由起始位置Start和长度Len决定8、试编写程序并输出前后结果,(2,4,6,8,10) 某线性表按增序排列,插入一结点依然升序,用链式结构实现9、同上题线性表,删除一结点后依然升序,用链式结构实现
呵呵,有点多啊!!!!!!!!!!!!!!
是太多了,看得偶眼都晕,先回去养养眼
看来越来越多人把CSDN看成是义工组织了
void PrintArray(int nArray[],int nLength)
{
for(int i=0;i<nLength;i++)
cout<<nArray[i]<<" ";
cout<<endl;
}
//排序
void ByOrderArray(int nArray[],int nLength)
{
int nTemp;
for(int i=0;i<nLength-1;i++)
{
for(int j=i+1;j<nLength;j++)
{
if(nArray[i]>nArray[j])
{
nTemp=nArray[i];
nArray[i]=nArray[j];
nArray[j]=nTemp;
}
}
}
PrintArray(nArray,nLength);
}
//删除该内容,其实就是不显示,不知道你的意思是什么,与其赋值倒不如不操作
//想着你的意思是二分查找吧???
int ByOrderDelArray(int nArray[],int nLength,int nAm)
{
int nHead=0;
int nEnd=nLength-1;
int nFlag=0; for(int i=-1;(2^i)<=nLength;i++)
{
if ( nAm > nArray[(nHead + nEnd)/2] )
{
nHead=(nHead+nEnd)/2;
if (nHead==(nHead+nEnd)/2)
nHead=nEnd;
} else if ( nAm < nArray[(nHead + nEnd )/2])
{
nEnd=(nHead+nEnd)/2;
if (nEnd==(nHead+nEnd)/2)
nEnd=nHead; } else
{
int temp=nArray[(nHead+nEnd)/2];
nArray[(nHead+nEnd)/2]=nArray[nLength-1];
nArray[nLength-1]=temp;
nFlag=1;
break;
}
} if(nFlag==1)
{
ByOrderArray(nArray,nLength-1);
return 1;
}
return 0;
}
//连接线性表
int ConnectAll(int nArray1[],int nLength1,int nArray2[],int nLength2,int nArray3[],int nLength3)
{
if (nLength3<=nLength1)
{
int nTemp=nLength3;
for(int i=0;i<nTemp;i++)
{
nArray3[i]=nArray1[i];
}
return 0;
}
else if (nLength3>nLength1 && nLength3<=nLength1+nLength2)
{
int nTemp=nLength1;
for(int i=0;i<nTemp;i++)
{
nArray3[i]=nArray1[i];
}
int _nTmep=nLength3-nLength1;
for(i=0;i<=_nTmep;i++)
{
nArray3[i+nTemp]=nArray2[i];
}
return 1;
} else
{
for(int i=0;i<nLength1;i++)
{
nArray3[i]=nArray1[i];
}
for(i=0;i<nLength2;i++)
{
nArray3[i]=nArray2[i];
}
return 2;
}
}
4。不明白,栈结构的特点是先进先出,和进制转换有什么关系?难道是字节?
???16进制不是直接可以输出吗?要转换成字符串?刚贴过,自己找吧,不过是10转换10的。
5。
char pString[1024]="f(N)=";char cArray[10][3]={"1","2","3","4","5","6","7","8","9","10"};
int count=0;
char* Five(int n,bool flag)
{
if (flag)
count++;
if (count <= 5)
{
Five(n+1,true);
Five(n+2,false);
strcat(pString,"f(n-");
strcat(pString,cArray[n+1]);
strcat(pString,")+f(n-");
strcat(pString,cArray[n+2]);
strcat(pString,")+");
}
return pString;
}void main()
{
pString[strlen(Five(0,true))-1]='\0';
cout<<pString<<endl;;
}
6,好没水准的题目哦:)
7,更没水准:-)
8,9:将一二两式的稍微修改一下,在线性表上增加三个函数 一个返回地址,一个修改当前值,一个返回当前接点值,在做比较的时候,用一个变量存储结点数据地区的地址
如果是你的作业,劝你一句,还是不要用这种方法作。
(如果你是计算机系并且想进入IT业)。
如果自己实在不会,得到答案后,一定要看会它。
以下代码在VC6中编译通过。
#include <stdio.h>
#include <string.h>int compare(char * s, char *t)
{
int res;
if(strlen(s) > strlen(t)) res = 1;
else if(strlen(s) < strlen(t)) res = -1;
else res = 0;
do
{
if(*s > *t) // s>t
return 1;
else if(*s < *t) // s<t
return -1;
}while(*s++ != '\0' && *t++ != '\0'); return res;
}void main()
{
char s[] = "ompare";
char t[] = "compare";
int d = compare(s, t);
}
呵呵,有点多啊!!!!!!!!!!!!!!
是太多了,看得偶眼都晕,先回去养养眼
看来越来越多人把CSDN看成是义工组织了
当成义工也不要紧,偏偏用高分来诱惑
呵呵,有点多啊!!!!!!!!!!!!!!
是太多了,看得偶眼都晕,先回去养养眼
看来越来越多人把CSDN看成是义工组织了
当成义工也不要紧,偏偏用高分来诱惑用高分诱惑不要紧,偏偏还有好多人来回答。
Compare(char * s, char * t)
{
return strcmp(s, t);
}
哈哈。
呵呵,有点多啊!!!!!!!!!!!!!!
是太多了,看得偶眼都晕,先回去养养眼
看来越来越多人把CSDN看成是义工组织了
当成义工也不要紧,偏偏用高分来诱惑用高分诱惑不要紧,偏偏还有好多人来回答。。很多人回答也是好事,偏偏还有很多人来接分。。(如我之流)
呵呵,有点多啊!!!!!!!!!!!!!!
是太多了,看得偶眼都晕,先回去养养眼
看来越来越多人把CSDN看成是义工组织了
当成义工也不要紧,偏偏用高分来诱惑用高分诱惑不要紧,偏偏还有好多人来回答。。很多人回答也是好事,偏偏还有很多人来接分。。(如我们之流)