数据结构与算法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


原创粉丝点击