zoukankan      html  css  js  c++  java
  • 自引用结构--之创建双向遍历的链表

    代码:

     1 //This is c program code!                                                                                           
     2 /* *=+=+=+=+* *** *=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
     3   * 文档信息: *** :~/WORKM/stutyCode/cCode/recipesProblemSolution/chapter07/test707.c
     4   * 版权声明: *** :(魎魍魅魑)MIT
     5   * 联络信箱: *** :guochaoxxl@163.com
     6   * 创建时间: *** :2020年11月28日的下午09:53
     7   * 文档用途: *** :数据结构与算法分析-c语言描述
     8   * 作者信息: *** :guochaoxxl(http://cnblogs.com/guochaoxxl)
     9   * 修订时间: *** :2020年第47周 11月28日 星期六 下午09:53 (第333天)
    10   * 文件描述: *** :自行添加
    11  * *+=+=+=+=* *** *+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+*/
    12 #include <stdio.h>
    13 #include <string.h>
    14 
    15 typedef struct _memb{
    16     char name[20];
    17     struct _memb *forward; 
    18     struct _memb *backward; 
    19 } Memb;
    20 
    21 void showForward(Memb *start){
    22     int flag = 1;
    23     do{
    24         printf("%s
    ", start->name);
    25         if(start->forward == NULL){
    26             flag = 0;
    27         }
    28         start = start->forward;
    29     }while(flag);
    30 
    31     return;
    32 }
    33 
    34 void showBackward(Memb *end){
    35     int flag = 1;
    36     do{
    37         printf("%s
    ", end->name);
    38         if(end->backward == NULL){
    39             flag = 0;
    40         }
    41         end = end->backward;
    42     }while(flag);
    43 
    44     return;
    45 }
    46 
    47 int main(int argc, char **argv)
    48 {
    49     Memb memb1;
    50     Memb memb2;
    51     Memb memb3;
    52     Memb *start;
    53     Memb *end;
    54 
    55     Memb membNum[] = {memb1, memb2, memb3};
    56     char *membName[] = {"lina", "mina", "bina"};
    57     int size = sizeof(membName)/sizeof(membName[0]);
    58     for(int i = 0; i < size; i++){
    59         strcpy(membNum[i].name, *(membName + i));
    60     }
    61 
    62     start = &membNum[0];
    63     start->forward = &membNum[1];
    64     start->forward->forward = &membNum[2];
    65     start->forward->forward->forward = NULL;
    66 
    67     end = &membNum[2];
    68     end->backward = &membNum[1];
    69     end->backward->backward = &membNum[0];
    70     end->backward->backward->backward = NULL;
    71 
    72     printf("Names of members (forward traversing): 
    ");
    73     showForward(start);
    74     printf("
    Names of members (backward traversing): 
    ");
    75     showBackward(end);
    76 
    77     return 0;
    78 }
  • 相关阅读:
    Linux的基本优化
    Linux登录自动切换root账户与历史命令优化
    前端借助dom-to-image把HTML转成图片并通过ajax上传到服务器
    HTTP基础知识(十一)
    HTTP基础知识(十)
    HTTP基础知识(九)
    HTTP基础知识(八)
    HTTP基础知识(七)
    HTTP基础知识(六)
    HTTP基础知识(五)
  • 原文地址:https://www.cnblogs.com/guochaoxxl/p/14054632.html
Copyright © 2011-2022 走看看