链表基本操作(C语言)
#include <stdio.h>
#include <stdlib.h>
typedef struct _list
{
int data;
struct _list *next;
}list,*plist;
plist create_list(int *a,int len)
{
plist head=NULL;
plist ptr=NULL;
plist newnode=NULL;
head=(plist)malloc(sizeof(list));
head->data=a[0];
head->next=NULL;
ptr=head;
for(int i=1;i<10;i++)
{
newnode=(plist)malloc(sizeof(list));
newnode->data=a[i];
newnode->next=NULL;
ptr->next=newnode;
ptr=ptr->next;
}
return head;
}
plist insert_node(plist head,int data,int pos)
{
plist node,ptr;
ptr=head;
node=(plist)malloc(sizeof(list));
node->data=data;
node->next=NULL;
if(pos==0)
{
node->next=head;
return node;
}
else
{
for(int i=0;i<pos && ptr->next != NULL;i++)
{
ptr=ptr->next;
}
node->next=ptr->next;
ptr->next=node;
return head;
}
}
void print_list(plist head)
{
plist ptr=head;
while(ptr != NULL)
{
printf("%d ",ptr->data);
ptr=ptr->next;
}
printf("\n");
}
plist delete_node(plist head,int pos)
{
plist ptr=head;
plist temp=NULL;
if(pos==0)
{
ptr=head->next;
free(head);
return ptr;
}
else
{
for(int i=1;i<pos-1 && ptr->next->next != NULL;i++)
{
ptr=ptr->next;
}
if(ptr->next != NULL)
{
temp=ptr->next;
ptr->next=temp->next;
free(temp);
return head;
}
else
{
free(ptr->next);
ptr->next=NULL;
}
}
}
plist reverse_list(plist head)
{
plist a,b,c;
a=NULL;
b=head;
c=head->next;
while(b->next != NULL)
{
b->next=a;
a=b;
b=c;
c=c->next;
}
b->next=a;
return b;
}
int main(void)
{
int a[10];
for(int i=0;i<10;i++)
{
a[i]=i;
}
plist head=NULL;
head=create_list(a,10);
print_list(head);
head=insert_node(head,4,10);
print_list(head);
head=delete_node(head,12);
print_list(head);
head=reverse_list(head);
print_list(head);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述