|
发表于 2022-11-29 11:23:30
|
显示全部楼层
本楼为最佳答案
本帖最后由 jhq999 于 2022-11-29 11:31 编辑
- int qucong(int *des,int *src,int n)
- {
- int ishav[n]={0};
- int i,j,k,p;
- for(i=0,j=0,p=0;i<n;i+=1)
- {
- for(k=0;k<p;k+=1)
- {
- if(src[i]==ishav[k])break;
- }
- if(k==p)des[j++]=ishav[p++]=src[i];
- }
- return j;
- }
复制代码- struct NODE
- {
- int val;
- struct NODE * left,*right;
- };
- int qucong(int *des,int *src,int n)
- {
- struct NODE *nodes=(struct NODE *)calloc(n,sizeof(struct NODE ));
- int i,j,pt=0,flag;
- nodes[0].val=des[0]=src[0];
- pt=1;
- for(i=1,j=1;i<n;i+=1)
- {
- struct NODE* p=nodes;
- flag=0;
- while(src[i]!=p->val)
- {
- if(src[i]<p->val)
- {
- if(p->left)p=p->left;
- else
- {
- nodes[pt].val=src[i];
- p->left=&nodes[pt++];
- flag=1;
- break;
- }
- }
- else
- {
- if(p->right)p=p->right;
- else
- {
- nodes[pt].val=src[i];
- p->right=&nodes[pt++];
- flag=1;
- break;
- }
- }
- }
- if(flag)des[j++]=src[i];
- }
-
- free(nodes);
- }
复制代码 |
|