c语言单链表
#include <stdio.h>
#include <stdlib.h>
#define ERROR -1
#define SUCCESS 0
struct list_node
{
int data;
struct list_node *next;
/* data */
};
typedef struct list_node link_list;
int list_get_size(link_list *list)
{
int count = 0;
link_list *p = list;
if(!list)
{
return ERROR;
}
while(p->next)
{
count++;
p = p->next;
}
return count;
}
int list_insert_head(link_list *list, int data)
{
struct list_node *new = (struct list_node *)malloc(sizeof(struct list_node *));
new->data = data;
link_list *p = list;
while(new->data!=-1)
{
new->next = p->next;
p->next = new;
break;
}
return SUCCESS;
}
int list_insert_tail(link_list *list, int data[], int len)
{
link_list *r = list;
for(int i = 0; i <len; i++)
{
struct list_node *new = (struct list_node *)malloc(sizeof(struct list_node *));
new->data = data[i];
r->next = new;
r = new;
}
r->next = NULL;
return ERROR;
}
struct list_node* list_reverse( struct list_node *list)
{
struct list_node *new_head = NULL;
while(list)
{
struct list_node *new_node = (struct list_node *)malloc(sizeof(struct list_node));
new_node->data = list->data;
new_node->next = new_head;
new_head = new_node;
list = list->next;
}
return new_head;
}
int reverse(link_list *list)
{
int i = 0;
struct list_node *p = list;
while (p->next)
{
p = p->next;
printf("%d\n", list_reverse(p)->data);
}
return 0;
}
int list_print(link_list *list)
{
int i =0;
struct list_node *p = list;
while(p->next)
{
p = p->next;
printf("%d:%d\n", i++, p->data);
}
return 0;
}
int main(int argc, char const *argv[])
{
link_list list;
link_list list1;
int i =0;
int data[10] = {1,2,3,4,5,6,7,8,9,0};
printf("头插法: \n");
for(int i = 0; i <10; i++)
{
list_insert_head(&list, data[i]);
}
list_print(&list);
printf("list len =%d\n", list_get_size(&list));
printf("尾插法:\n");
for (int i = 0; i < 10; i++)
{
list_insert_tail(&list1, data, 10);
}
list_print(&list1);
printf("链表翻转:\n");
reverse(&list1);
return 0;
}
本文来自博客园,作者:{心亘久},转载请注明原文链接:https://www.cnblogs.com/zhaodejin/p/17922406.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix