| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 730 人关注过本帖
标题:折腾到现在,快1点了
取消只看楼主 加入收藏
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
结帖率:58.18%
收藏
 问题点数:0 回复次数:4 
折腾到现在,快1点了
今天想写个原地反转链表的代码,想了三种方法,先试写第一种。
head ABCD NULL先变为head BCDA NULL再变为head CDBA NULL。。。。。如此变换
花了很长时间不过我觉得值了,以后得先思考所用的方法需要那些变量而不是盲目的敲代码。

当然for语句中的for敲成了while,找错找了好长时间,这个时间花的不值。
2015-09-29 00:57
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
收藏
得分:0 
回复 2楼 林月儿
写起来是比较烦。
程序代码:
#include<stdio.h>
#include<stdlib.h>

struct node
{
    int data;
    struct node *next;
};
typedef struct node lnode;
typedef struct node *list;


list creat()
{
    int N;
    int i,a;

    list tempnode,q;
    list head;

    printf("请输入链表结点个数\n");
    scanf("%d",&N);
    
    head=NULL; 

    printf("请输入数据\n");

    for(i=1;i<=N;i++)    //尾插法建立单链表,无表头
    {
        tempnode=(list)malloc( sizeof(lnode) );
        tempnode->next=NULL;
        scanf("%d", &a);
        tempnode->data=a;
        

        if(head==NULL)
            head=tempnode;
        else
            q->next=tempnode;

            q=tempnode;
    }    

    return head;
}



list reverse(list head)//原地反转
{

        list tailnode,p,q;
        tailnode=head;
        p=head;
        q=NULL;

        while(tailnode->next!=NULL)  tailnode=tailnode->next;//找到链表尾结点

        while(p!=tailnode)
        {
            head=p->next;//记住p->next所指向的位置
            
            //未反转的链表第一个结点插入到已反转链表的第一个位置
            tailnode->next=p;
            if(q==NULL) p->next=NULL;
            else p->next=q;

            q=p;//记住已反转链表的第一个结点

            p=head;

        }
        return head;

}


void output(list head)
{   
    list p;
    p=head;
    while(p!=NULL)
    {
        printf("%d\t",p->data);
        p=p->next;
    }
    printf("\n");
}


int main()
{
    list list_1,list_reverse;

    list_1=creat();
    output(list_1);

    list_reverse = reverse( list_1 );

    
    output(list_reverse);

    return 0;

}
2015-09-29 21:47
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
收藏
得分:0 
回复 4楼 TonyDeng
。。。下次不这样了。。。
2015-09-29 21:48
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
收藏
得分:0 
回复 3楼 hu9jj
努力成为优秀的程序员。。。。
2015-09-29 21:48
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
收藏
得分:0 
回复 10楼 冰镇柠檬汁儿
确实有人这么干。。。
2015-10-03 14:22
快速回复:折腾到现在,快1点了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023479 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved