该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
以前做的还找得到,呵呵,绐你贴出来了,C语言版的
#include
struct datatype{
char a[30];
};
struct node{
struct datatype info;
struct node *link;
};
typedef struct node *pnode;
typedef struct node *linklist;
char press_control(char a,char b){
char ch='-1';
while(1){
ch=getch();
if(ch==a){return ch;}
if(ch==b){return ch;}
}
}
linklist createlinklist(void){
linklist head;pnode p,q;
char ch='-1';
head=NULL;
p=head;
while(1){
printf("insert press '1',exit press '2'.\n");
ch=press_control('1','2');
if(ch=='1'){
q=(pnode)malloc(sizeof(struct node));
printf("input data:\n");
scanf("%s",q->info.a);
p->link=q;p=q;}
else {p->link=NULL;break;}
}
return(head);
}
void show(linklist head){
pnode p;int i;
if(head->link==NULL){printf("it's a null linklist\n");return;}
p=head->link;
for(i=1;p!=NULL;i++){
printf("%s---->",p->info.a);
p=p->link;
}
printf("NULL\n");
}
linklist f(linklist head){
pnode p,q;
if(head->link==NULL||head->link->link==NULL){return(head);}
else {
p=head->link;q=p->link;p->link=NULL;
while(q!=NULL){
p=q;q=p->link;p->link=head->link;head->link=p;
}
return(head);
}
}
void main(){
linklist head;
clrscr();
head=createlinklist();
show(head);getch();
printf("press any key to *&*%#$$%%$^$#^^%$^#@%@#%#^\n");getch();
head=f(head);show(head);getch();
}