头插法
#include<stdio.h>
#include<stdlib.h>
struct text
{
int data;
struct text *next;
};
void printlink(struct text *head)
{
struct text *p = head;
while(p != NULL){
printf("%d ",p->data);
p = p->next;
}
putchar('\n');
}
struct text *toucha(struct text *head)
{
struct text *new;
while(1){
new =(struct text *)malloc(sizeof(struct text));
printf("input your new node data:");
scanf("%d",&(new->data));
if(new->data == 0){
printf("0 quit\n");
return head;
}
if(head == NULL){
head = new;
}else{
new->next = head;
head = new;
}
}
return head;
}
- [ ] List item
int main()
{
struct text *head = NULL;
head = toucha(head);
printlink(head);
return 0;
}
头插法(优化)
#include<stdio.h>
#include<stdlib.h>
struct text
{
int data;
struct text *next;
};
void printlink(struct text *head)
{
struct text *p = head;
while(p != NULL){
printf("%d ",p->data);
p = p->next;
}
putchar('\n');
}
struct text *toucha(struct text *head,struct text *new)
{
if(head == NULL){
head = new;
}else{
new->next = head;
head = new;
}
return head;
}
struct text *creatlink(struct text *head)
{
struct text *new;
while(1){
new =(struct text *)malloc(sizeof(struct text));
printf("input your new node data:");
scanf("%d",&(new->data));
if(new->data == 0){
printf("0 quit\n");
free(new);
return head;
}
head = toucha(head,new);
}
}
int main()
{
struct text *head = NULL;
struct text t1 = {1000,NULL};
head = creatlink(head);
printlink(head);
head = toucha(head,&t1);
printlink(head);
return 0;
}
尾插法
#include<stdio.h>
#include<stdlib.h>
struct text
{
int data;
struct text *next;
};
void printlink(struct text *head)
{
struct text *p = head;
while(p != NULL){
printf("%d ",p->data);
p = p->next;
}
putchar('\n');
}
struct text *weicha(struct text *head,struct text *new)
{
struct text *p = head;
if(p == NULL){
head = new;
return head;
}
while(p->next != NULL){
p = p->next;
}
p->next = new;
return head;
}
struct text *creatlink(struct text *head)
{
struct text *new;
while(1){
new =(struct text *)malloc(sizeof(struct text));
printf("input your new node data:");
scanf("%d",&(new->data));
if(new->data == 0){
printf("0 quit\n");
free(new);
return head;
}
head = weicha(head,new);
}
}
int main()
{
struct text *head = NULL;
head = creatlink(head);
printlink(head);
struct text t1 = {1000,NULL};
head = weicha(head,&t1);
printlink(head);
return 0;
}