链表打印

请叫我龙叔 发布于 08/06 07:03
阅读 507
收藏 0
c

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

这个链表遍历打印程序怎么不能实现?

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
typedef struct menu_t1
{
    struct menu_t1* father;
    struct menu_t1* bro_up;
    struct menu_t1* bro_down;
    struct menu_t1* son;
    char *s;
    void (*f)( void );
} menu_t ;
menu_t * Create_Menu_Head ( char * s , void (*f)( void ))
{
    menu_t * p=( menu_t *) malloc ( sizeof ( menu_t ));
    if (p!= NULL )
    {
        p -> father =p;
        p -> bro_down = NULL ;
        p -> bro_up = NULL ;
        p -> son = NULL ;
        p -> f =f;
        p -> s =s;
        return p;
    }
}
menu_t * Create_Menu_Node ( menu_t * Head , char * s , void (*f)( void ))
{
    menu_t *newNode= NULL ;
    menu_t *boo= NULL ;
    boo=Head;
    while ( boo -> bro_down != NULL ) boo= boo -> bro_down ;
    newNode=( menu_t *) malloc ( sizeof ( menu_t ));
 
    newNode -> father = boo -> father ;
    newNode -> s =s;
    newNode -> f =f;
    newNode -> bro_down = NULL ;
    newNode -> bro_up =boo;
    return newNode;
}
menu_t * Create_Menu_Tail ( menu_t * Node , char * s , void (*f)( void ))
{
    menu_t *tailNode= NULL ;
    menu_t *boo= NULL ;
    boo=Node;
    tailNode=( menu_t *) malloc ( sizeof ( menu_t ));
    tailNode -> father =boo;
    tailNode -> bro_down = NULL ;
    tailNode -> bro_up = NULL ;
    tailNode -> son = NULL ;
    tailNode -> s =s;
    tailNode -> f =f;
    return tailNode;
}
void showList ( menu_t * List )
{
    menu_t *boo= NULL ;
    boo=List;
    printf ( " %s " ,boo);
}
#define PO( x ) printf ( "x" )
int main ( void )
{
    menu_t * head;
    menu_t * temp;
    menu_t * temp_Son;
    head= Create_Menu_Head ( "第一级 \r\n " , NULL );
    // printf("%s\r\n",head->s);
    temp= Create_Menu_Node (head, "第二级-1 \r\n " , NULL );
    // printf("%s\r\n",temp->s);    
    temp= Create_Menu_Node (head, "第二级-2 \r\n " , NULL );
    // printf("%s\r\n",temp->s);
    temp_Son= Create_Menu_Tail (temp, "第二级-1-1 \r\n " , NULL );
    // printf("%s\r\n",temp_Son->s);
    showList (head);
    system ( "pause" );
}

 

加载中
0
tcxu
tcxu

你的问题是:

  1. 你定义的数据类型是menu_t 还是 menu_t1?
  2. 你定义的三个方法:Create_Menu_Head(...);Create_Menu_Nod (...)   和 Create_Menu_Tail(...)之中,都没有打印字符串参数 char * s 的语句,当然,调用执行时,不会输出 s 的内容。

建议做如下修改,以实现你期待的输出。

  1. 将你定义的数据类型名称一律改成 menu_t。
  2. 将三个方法定义,都添加 printf(s) 语句。
0
LibreSoftc
LibreSoftc

你这个七彩的颜色 

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部