/////////////////////////////////定义节点结构体
struct node
{
int data;
struct node *pnext;
};
////////////////////////////////////main函数
int main()
{
struct node *pHeader = creatList(0);
/*insert_tail(creatList(1),pHeader);
insert_tail(creatList(2),pHeader);
insert_tail(creatList(3),pHeader);*/
insert_head(creatList(1),pHeader);
insert_head(creatList(2),pHeader);
//creatList(1);
printf("p1的data为:%d 总的节点数为:%d\n",pHeader->pnext->data,pHeader->data);
printf("p2的data为:%d 总的节点数为:%d\n",pHeader->pnext->pnext->data,pHeader->data);
//printf("p3的data为:%d 总的节点数为:%d\n",pHeader->pnext->pnext->pnext->data,pHeader->data);
//creatList(2);
system("pause");
return 0;
}
//////////////////////////////////创建新节点
struct node * creatList(int data)
{
struct node *p ;
p =(struct node *)malloc(sizeof(struct node));
//忘记判断了
if(p == NULL)
{
printf("创建节点指针失败");
return NULL;
}
//忘记清0了
memset(p,0,sizeof(struct node));
p->data = data;
p->pnext = NULL;
return p;
}
///////////////////////////////尾插法
void insert_tail(struct node * newNode, struct node *pHeader)
{
struct node * p = pHeader;
int length = 0;
while(p->pnext!= NULL)
{
p = p->pnext;
length++;
}
pHeader->data = length+1;
p->pnext = newNode;
}
//////////////////////////////////////头插法
void insert_head(struct node *newNode,struct node *pheader)
{
struct node * p = newNode;
p->pnext = pheader->pnext;
pheader->pnext = p;
pheader->data +=1;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)