#include<stdio.h>
#include<stdlib.h>
struct MyStruct
{
int data; //数据域
struct MyStruct *pnext; //指针域
};
void digui(struct MyStruct *p)
{
if (p == NULL)
return;
else
{
printf("%d %p %p\n", p->data, p, p->pnext);
digui(p->pnext);
//结果要逆序输出,则把顺序调换
/*
digui(p->pnext);
printf("%d %p %p\n", p->data, p, p->pnext);
 */
//如图
图片
}
}
void main()
{
struct MyStruct *p;
struct MyStruct s1;
struct MyStruct s2;
struct MyStruct s3;
struct MyStruct s4;
struct MyStruct s5;
s1.data = 1; 
s2.data = 2;
s3.data = 3;
s4.data = 4;
s5.data = 5;
s1.pnext = &s2;
s2.pnext = &s3;
s3.pnext = &s4;
s4.pnext = &s5;
s5.pnext =NULL;
p = &s1;
printf("%d\n", p->data);
printf("%d\n", p->pnext->data);
printf("%d\n", p->pnext->pnext->data);
printf("%d\n", p->pnext->pnext->pnext->data);
printf("%d\n", p->pnext->pnext->pnext->pnext->data);
图片
 
printf("\n\n");   //for循环输出
for (struct MyStruct *px=p; px != NULL; px=px->pnext) 
{
printf("%d %p %p\n", px->data,px,px->pnext);
}
图片 
 
printf("\n\n");  //递归输出
digui(p);
//输出结果与for循环输出结果一样
图片 
 
system("pause");
}

 

posted on 2018-01-21 17:59  不朽、醉  阅读(112)  评论(0)    收藏  举报