Free考研资料 - 免费考研论坛

 找回密码
 注册
打印 上一主题 下一主题

求数据结构一算法解答

[复制链接]
跳转到指定楼层
楼主
一只鱼儿 发表于 07-9-24 16:56:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
题目:
   从左到右及从右到左遍历一个单链表是可能的,其方法是在从左到右遍历的过程中将连接方向逆转。在从右到左遍历的过程中再次逆转,进行恢复。设单链表为不带头结点的单链表,试设计算法实现上述两个遍历。
typedef struct Lnode{
ElemType data;
struct Lnode *next;
}Lnode,*LinkList;


能否帮忙解答一下,谢谢!!!
沙发
honghu069 发表于 07-9-25 16:11:46 | 只看该作者
随便写了一个,如下,这个要自己体会

#include<stdio.h>

typedef struct Lnode{
int data;
struct Lnode *next;
}Lnode,*LinkList;

int main()
{
        LinkList head,p,q,f;//head 是头指针

        head=new Lnode;                                       //创建链表为1 2 3 4
        head->data=1;head->next=0;
        p=new Lnode;p->data=4;p->next=head->next;head->next=p;
        p=new Lnode;p->data=3;p->next=head->next;head->next=p;
        p=new Lnode;p->data=2;p->next=head->next;head->next=p;


        p=head;//打印原始链表
        while(p)
        {
                printf(\"%d \",p->data);
                p=p->next;
        }
        printf(\"\\n\");


        if(head->next)//逆转
        {
                p=head->next;q=head;q->next=0;
                while(p)
                {
                        f=p->next;
                        p->next=q;
                        q=p;
                        p=f;
                }
                head=q;
        }

        p=head;//打印逆转后的链表
        while(p)
        {
                printf(\"%d \",p->data);
                p=p->next;
        }
        printf(\"\\n\");


        if(head->next)//再次逆转
        {
                p=head->next;q=head;q->next=0;
                while(p)
                {
                        f=p->next;
                        p->next=q;
                        q=p;
                        p=f;
                }
                head=q;
        }

        p=head;//打印再次逆转后的链表,和原始链表一样
        while(p)
        {
                printf(\"%d \",p->data);
                p=p->next;
        }
        printf(\"\\n\");


        return 0;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系我们|Free考研资料 ( 苏ICP备05011575号 )

GMT+8, 24-11-19 09:21 , Processed in 0.086297 second(s), 12 queries , Gzip On, Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表