数据结构与算法3:链表1
来源:互联网 发布:linux改用户名命令 编辑:程序博客网 时间:2024/06/05 21:04
1、删除未排序链表的重复节点
#include <stdlib.h>#include <stdio.h>typedef struct tag_LinkNode{ int data; struct tag_LinkNode *next; } LinkNode;LinkNode * init_link(int num){ LinkNode *head = NULL; LinkNode *pstLink; num = 2*num; while(num > 0) { pstLink = (LinkNode *)malloc(sizeof(LinkNode)); pstLink->data = num/2; if (!head) { head = pstLink; head->next = NULL; continue; } pstLink->next = head->next; head->next = pstLink; num--; } return head;}void destory_link(LinkNode *head){ LinkNode *pstLink; pstLink = head; while(pstLink != NULL) { head = head->next; free(pstLink); pstLink = head; }}void print_link(LinkNode *head){ LinkNode *pstLink; pstLink = head; while(pstLink != NULL) { printf("%p:%d\n", pstLink, pstLink->data); pstLink = pstLink->next; } printf("\n");}void remove_repeat_node(LinkNode *head){ LinkNode *pstCurrent = head; LinkNode *pstRunning; LinkNode *tmp; while(pstCurrent != NULL) { pstRunning = pstCurrent; while(pstRunning->next != NULL) { if (pstRunning->next->data == pstCurrent->data) { tmp = pstRunning->next->next; free(pstRunning->next); pstRunning->next = tmp; } else { pstRunning = pstRunning->next; } } pstCurrent = pstCurrent->next; }}int main(int argc, char *args[]){ LinkNode *head; int num; if (argc != 2) { printf("use a.out xxx\n"); return 1; } num = atoi(args[1]); head = init_link(num); print_link(head); remove_repeat_node(head); print_link(head); destory_link(head); return 0;}
效果:
root@ubuntu:/home/cling60/src/struct/LinkedList# ./a.out 100x9a63008:100x9a63148:00x9a63138:10x9a63128:10x9a63118:20x9a63108:20x9a630f8:30x9a630e8:30x9a630d8:40x9a630c8:40x9a630b8:50x9a630a8:50x9a63098:60x9a63088:60x9a63078:70x9a63068:70x9a63058:80x9a63048:80x9a63038:90x9a63028:90x9a63018:100x9a63008:100x9a63148:00x9a63138:10x9a63118:20x9a630f8:30x9a630d8:40x9a630b8:50x9a63098:60x9a63078:70x9a63058:80x9a63038:9
阅读全文
0 0
- 数据结构与算法3:链表1
- 数据结构与算法-链表
- 数据结构与算法:链表
- 数据结构与算法 -- 链表
- 数据结构与算法:链表
- 数据结构与算法(1)
- 算法与数据结构--(1)
- 数据结构与算法-1
- 数据结构与算法1
- 数据结构与算法3:链表3
- 数据结构与算法(3 Reverse链表)
- 数据结构与算法(3)--链表
- 数据结构与算法3:链表2
- 数据结构与算法--链表(1)
- 数据结构与算法-基础数据结构(链表)
- python数据结构与算法 1 基本数据结构
- 数据结构与算法1-大话数据结构
- 【数据结构与算法分析】链表
- 2017.11.3第三课
- 关于使用Android开发Vitamio框架带来的一个“惊喜”
- 冒泡算法
- 物流将成为BAT的新战场
- HTML 的基本标签
- 数据结构与算法3:链表1
- wireshark找不到捕获接口问题的解决办法
- 图的广度优先遍历(链式前向星)
- 深究递归和迭代的区别、联系、优缺点及实例对比
- 数据结构-树与二叉树
- python网络爬虫系列教程——Python+PhantomJS +Selenium组合应用
- PHP连接和拆分数组array_combine()和array_slice()用法示例
- 2017年11月3日博客开通随笔
- Essential Studio for Xamarin更新至2017 v3版本,增加新的选择器控件丨附下载