链表的创建和插入

#include "stdio.h"
#include "stdlib.h"
#include "malloc.h"

struct Node{  //表的结构体 
	int data;	//数据域 
	struct node *next;	//指针域 
};	

struct Node* creatlist()	//创建一个链表 带头结点 
{
	struct Node* headNode = (struct Node*)malloc(sizeof(struct Node));		//创建头节点分配动态内存  
	headNode->next=NULL;		//头节点指向空NULL 
	return headNode;		//返回头节点
}
	
struct Node* creatnode(int data){		//创建一个新节点
	struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));		//创建新节点分配动态内存 
	newNode->data = data;			//数据域指向data 
	newNode->next = NULL;			//指针域指向空(因为是最后一个) 
	return newNode;					//返回新节点 
}

void charu(struct Node* headNode,int data)		//插入一个新节点 (这里用的是头插法,插在头结点之后) 
{		
	struct Node* newNode= creatnode(data);		//插入新节点前要先创建新节点 
	newNode->next=headNode->next;				//新节点指向头结点后一个节点之前 
	headNode->next=newNode;						//头结点之后指向新节点 
}

void printflist(struct Node* headNode){			//输入链表的函数 
	struct Node* Pmove = headNode->next;		//创建一个Pmove节点在头节点之后 
	while(Pmove)								//当这个节点存在时 
	{
		printf("%d",Pmove->data);				//输入Pmove节点的数据域里面的值 
		Pmove=Pmove->next;						//在Pmove往后移一位 
	}
	printf("\n");								//换行 
}

void shanchu(struct ) 
		
int main(){
	struct Node* list=creatlist();				//创建链表 
	charu(list,1);								//插入一个 节点在头节点之后 
	charu(list,2);								//以此类推 
	charu(list,3);
	printflist(list);							//输出是321  因为头插法先入后出  都被往后挤了  
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wiyoo0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值