#include#includetypedef struct __two_lif {long long int data;struct __two_lif * left;struct __two_lif * right;} twolify,*lptlfy;typedef struct __one_lif {struct __one_lif * roof;struct __one_lif * next;struct __two_lif * lpt;int D;} onelify,*lpolfy;lpolfy create_aone__(lpolfy al,lptlfy rl,int D) {al->roof = NULL;al->next = NULL;al->lpt = rl;al->D = D;return al;}void free_alifyone(lpolfy l) {lpolfy n;while(l!=NULL) {n = l->next;free(l);l = n;}}lpolfy cap_liopone(lpolfy less,lpolfy al) {if(less==NULL)return al;if(less->DD) {free_alifyone(less->next);less->next = al;al->roof = less;if(less->lpt->left!=NULL) {less->lpt->right = al->lpt;} else {less->lpt->left = al->lpt;}return al;} else {return cap_liopone(less->roof,al);}}lptlfy create_atwo(lptlfy lpt, long long int data) {lpt->data = data;lpt->left = NULL;lpt->right = NULL;return lpt;}void free_alifytwo(lptlfy at) {if(at != NULL){free_alifytwo(at->left);free_alifytwo(at->right);free(at);}}lpolfy cap_lioptwo(lpolfy ol,lptlfy at,int D) {return cap_liopone(ol,create_aone__((lpolfy)malloc(sizeof(onelify)),at,D));}int f=0;void print_cap(lptlfy lpt, int p[], int i, int D) {if(i=D) {if(lpt==NULL)p[f++] = -1;else p[f++] = lpt->data;return;} else {print_cap(lpt->left,p,i+1,D);print_cap(lpt->right,p,i+1,D);return;}}int main(){int p[1000],N;char lip[1000];lpolfy lpo=NULL;int i=0,j=0,D;long long int ap;scanf("%s",lip);N = 0;while(*(lip+j)!='\0') {if(*(lip+j)=='_')i++,j++;else {D = i;i = 0;sscanf(lip+j,"%d",&ap);lpo = cap_lioptwo(lpo,create_atwo((lptlfy)malloc(sizeof(twolify)),ap),D);if(Nroof!=NULL)lpo = lpo->roof;for(i=0; ilpt,p,0,i);}for(i=0; i

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论