您的位置:首页 > 其它

单链表的创建

2016-01-28 16:48 323 查看
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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: