链表初步
来源:互联网 发布:星际战甲漂亮捏脸数据 编辑:程序博客网 时间:2024/06/09 20:14
链表创建
顺序建立链表
//input: the number of nodes//return: address of the head nodestruct node * create(int n){ struct node * p, * q, *head; int i; head = (struct node *)malloc(sizeof(struct node)); head->next = NULL; q = head; for(i = 0;i < n;i++) { p = (struct node *)malloc(sizeof(struct node)); scanf("%d", &p->data); p->next = NULL; q->next = p; q = p; } return head;}
链表输出
//input: the address of the head node//return: noneint output(struct node * head){ struct node * p, * q; p = head->next; while(p != NULL) { if(p->next != NULL) { printf("%d ", p->data); } else { printf("%d\n", p->data); } p = p->next; } return 0;}
链表逆置
其一
//input: the address of the head node//return: noneint reverse(struct node * head){ struct node * p, * q; p = head->next; head->next = NULL; q = p->next; while(p != NULL) { p->next = head->next; head->next = p; p = q; if(q != NULL) { q = q->next; } } return 0;}
其二
(待补充)
链表归并
//input: the address of two head nodes(head1, head2)//return: the address of head1struct node * merge(struct node * head1,struct node * head2){ struct node *p1, *p2, *q; p1 = head1->next; p2 = head2->next; q = head1; free(head2); while(p1 && p2) { if(p1->data < p2->data) { q->next = p1; q = p1; p1 = p1->next; } else { q->next = p2; q = p2; p2 = p2->next; } } if(p1) { q->next = p1; } else { q->next = p2; } return (head1);}
链表拆分
(待补充)
2 0
- 双向链表初步
- 链表初步
- 链表初步学习
- 链表初步
- 链表初步
- 链表的初步接触
- java链表初步学习
- 链表初步(改)
- 邻接表初步
- 初步
- 银行系统多用户初步(动态链表)
- C语言实现通用链表初步(一)
- C语言实现通用链表初步(二)
- C语言实现通用链表初步(三)----单元测试
- C语言实现通用链表初步(四)----双向链表
- 《C语言及程序设计》程序阅读——链表初步
- 《C语言及程序设计》实践项目——链表初步
- JavaScript原型、原型链初步认识
- CentOS安装vritualbox增强功能
- linux命令学习
- GDB调试中将信号发送给程序的方法
- House Robber II
- ThreadLocal线程内单例跨线程调用测试
- 链表初步
- SWID and SCAP
- Java之——类加载器探究
- Unity 中的旋转
- opencv GUI 指令
- Codeforces 484B Maximum Value
- 云南修改集群
- Tomcat在JavaEE中应用介绍
- 最小生成树问题学习总结