zoukankan      html  css  js  c++  java
  • 双端链表 冒泡排序 有头结点

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <string.h>
     4 
     5 typedef char * ElemType;
     6 
     7 typedef struct DuLNode {
     8     ElemType data;
     9     struct DuLNode *prior, *next;
    10 } DuLNode, *DuLinkList;
    11 
    12 
    13 DuLinkList create(){
    14     return (DuLinkList)malloc(sizeof(DuLNode));
    15 }
    16 
    17 char * create_str(char *str){
    18     char *ss = (char *)malloc((strlen(str) + 1) * sizeof(char));
    19     strcpy(ss, str);
    20     return ss;
    21 }
    22 
    23 void scan(DuLinkList L){
    24     int n;
    25     char str[1024];
    26     DuLinkList lp, p = L;
    27     scanf("%d", &n);
    28     while(n--){
    29         scanf("%s", str);
    30 
    31         lp = create();
    32         lp->data = create_str(str);
    33         lp->prior = p;
    34         lp->next = NULL;
    35 
    36         p->next = lp;
    37 
    38         p = lp;
    39     }
    40 }
    41 void insertion_sort(DuLinkList L){
    42     
    43     DuLinkList sign = NULL, p1, p2, p = L->next;
    44     for(DuLinkList cnt = p; cnt->next != NULL; cnt = cnt->next){
    45         for(p1 = p, p2 = p->next; p2 != sign; p1 = p1->next, p2 = p2->next){
    46             if(strcmp(p1->data, p2->data) >= 0){
    47                 char *tmp = p1->data;
    48                 p1->data = p2->data;
    49                 p2->data = tmp;
    50             }
    51         }
    52         sign = p1;
    53     }
    54 }
    55 
    56 void print(DuLinkList L){
    57     DuLinkList p = L->next;
    58     while(p != NULL){
    59         printf("%s ", p->data);
    60         p = p->next;
    61     }
    62     puts("");
    63 }
    64 
    65 int main(){
    66     //freopen("data.txt", "r", stdin);
    67     DuLNode L;
    68     //输入数据
    69     scan(&L);
    70     //打印输出
    71     print(&L);
    72     //冒泡排序
    73     insertion_sort(&L);
    74     //打印数据
    75     print(&L);
    76 
    77     return 0;
    78 }
  • 相关阅读:
    Python-常用的高级函数
    Excel
    业务思维
    数据分析思维
    Netbeans 12无法打开项目(project的)的问题
    C++ tuple元组
    如何保障一场千万级大型直播?
    回声消除的昨天、今天和明天
    无参考评估在云信的视频测试实践
    一文读懂Python 高阶函数
  • 原文地址:https://www.cnblogs.com/xuqiulin/p/6179080.html
Copyright © 2011-2022 走看看