|
楼主 |
发表于 2003-8-11 22:20:12
|
显示全部楼层
[code:1]
#include <stdio.h>
#include <stdlib.h>
typedef struct node{
char data;
struct node *next;
}LNode;
LNode* create(LNode *h){
LNode *ptr;
int i=0; int n=0;
char tmp;
h=NULL;
printf("input the number of list:\n");
scanf("%d",&n);
for(;i<n;i++){
printf("input the %dth node of list: ");
scanf(" %c",&tmp);
ptr=(LNode*)malloc(sizeof(LNode));
if(!ptr) return 0;
ptr->data=tmp;
ptr->next=h;
h=ptr;
}
return h;
}
int main(int argc, char** argv){
LNode *head, *ptr;
if(!(head=create(head))){
printf("failed.\n");
exit(0);
}
ptr=head;
printf("print list:\n"); /*断点 1*/
while(ptr!=NULL){
printf("%c",ptr->data);
ptr=ptr->next;
}
printf("it's end.\n");
return 1;
}
[/code:1]
我用这种方法确实行得通,我之所以那样写是因为,在程序中有一个
int insert(LNode *h, int n);
的方法,其中n是链表现有的长度,我用create(head);返回一个整型
[code:1]
int create(LNode *h){
LNode *ptr;
int i=0; int n=0;
char tmp;
h=NULL;
printf("input the number of list:\n");
scanf("%d",&n);
for(;i<n;i++){
printf("input the %dth node of list: ");
scanf(" %c",&tmp);
ptr=(LNode*)malloc(sizeof(LNode));
if(!ptr) return 0;
ptr->data=tmp;
ptr->next=h;
h=ptr;
}
return n;
}
[/code:1]
然后在
[code:1]int main(int argc, char** argv){}[/code:1]中
调用
[code:1]
int len=0;
len=create(head);
[/code:1]
目的就是这样的 |
|