使用c语言实现单链表是考研的重点。但是如何实现却是一个难点。下面是我写的一个简单的创建单链表的代码。

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>

typedef struct node{
	int data;
	struct node *next;
}LinkList;  //结构体的定义

LinkList *create_Link(){  //创建单链表的主要代码(尾插法建立单链表)
	LinkList *head = NULL;
	LinkList *temp = NULL;
	LinkList *tail = NULL;
	head = (LinkList *)malloc(sizeof(LinkList));
	head->next = NULL;
	int x;
	scanf("%d",&x);
	while(x!=-1){  //循环停止条件,可以按照自己要求更改
		temp = (LinkList*)malloc(sizeof(LinkList));
		temp->data=x;
		temp->next=NULL;
		if(head->next==NULL){
			head->next=temp;
		}else{
			tail->next=temp;
		}
		tail=temp;
		scanf("%d",&x);
	}
	return head;
}

void print_Link(LinkList *L){  //打印出单链表
	L = L->next;
	while(L!=NULL){
		printf("%d ",L->data);
		L=L->next;
	}
}

int main(){  //主函数
	LinkList *L = create_Link();
	print_Link(L);
	return 0;
}

实验结果截图:

更多推荐

c语言实现单链表的创建(完整版)