#include <stdio.h>
#include <stdlib.h>
struct Test
{
int data;
struct Test *next;
};
struct Test *insertBehind(struct Test *head,struct Test *new)
{
struct Test *p = head;//注意防止指针头发生变化
if(p == NULL){
head = new;
return head;
}
while( p->next != NULL){
p = p->next;
}
p->next = new;
return head; //返回原来的指针头
}
struct Test *createLink2(struct Test *head)
{
struct Test *new;
while(1){
new = (struct Test*)malloc(sizeof(struct Test) );
printf("input data:\n");
scanf("%d",&(new->data));
if(new->data == 0){
printf("OK\n");
return head;
}
head = insertBehind(head,new);
}
}
struct Test *createBehind(struct Test *head)
{
struct Test *new;
while(1){
struct Test *p = head;
new = (struct Test*)malloc(sizeof(struct Test) );
printf("input data:\n");
scanf("%d",&new->data);
if(new->data == 0){
printf("0 quit\n");
return head;
}
if(head == NULL){
head = new;
}else{
while(p->next != NULL){
p = p->next;
}
p->next = new;
}
}
}
void printLinks(struct Test *head)
{
struct Test *p = head;
while(p != NULL){
printf("data = %d\n",p->data);
p = p->next;
}
}
int main()
{
struct Test *head;
//head = createLink2(head);
head = createBehind(head);
printLinks(head);
return 0;
}
线性表----尾插法创建链表
最新推荐文章于 2022-11-21 15:15:48 发布