typedef struct node //
{
char num;
struct node *next;
};
/******************************************/
struct node*creat(struct node *head)/*返回的是与节点相同类型的指针*/
{
struct node *pNew,*pEnd; //p2为尾指针
char ch;
head = null;//链表开始为空。
pEnd = null; //尾指针初始为空。
ch=getchar();
while(ch != '\n')
{
pNew =(struct node*)malloc(sizeof(struct node));//新节点
pNew->data = ch;
if(head == NULL)
{
head=pNew; //空表,接入表头
}
else
{
pEnd->next=pNew; //非空表,将新节点接到表尾
pEnd = pNew; //
}
ch=getchar(); // 读入下一字符
}
if(pEnd != null)
{
pEnd->next = null;
}
return head;
}
/*******************************************/
void print(struct node*head)/*出以head为头的链表各节点的值*/
{
struct node *temp;
temp=head;/*取得链表的头指针*/
while(temp!=NULL)/*只要是非空表*/
{
printf("%6d",temp->num);/*输出链表节点的值*/
temp=temp->next;/*跟踪链表增长*/
}
}
main( )
{
struct node *creat();
void print();
struct node *head;
head=NULL;
head=creat(head);
print(head);
}
单链表的创建
最新推荐文章于 2022-08-17 16:44:54 发布