这个链表遍历打印程序怎么不能实现?
#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"
);
}
你的问题是:
建议做如下修改,以实现你期待的输出。
你这个七彩的颜色