| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 491 人关注过本帖
标题:这么多指针,到底是谁指向谁?大神求助~~~~~~~
只看楼主 加入收藏
luoye1994
Rank: 2
等 级:论坛游民
帖 子:57
专家分:58
注 册:2015-6-29
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
这么多指针,到底是谁指向谁?大神求助~~~~~~~
typedef struct Node
{
    DataType data ;
    struct Node *next ;
}SLNode  ;

void DoSomeThing(SLNode *L)
{
    SLNode *Q, *P, *S = L ->next ;
    if(S->NULL && S ->next != NULL)
    {
        Q = S  ;
        S = S -> next ;
        P = S  ;
        while(P -> next != NULL)
            P = P -> next ;
        L -> next = Q -> next ;
        P -> next = Q ;
        Q -> next = NULL ;
    }
}
请问大神这段代码想表达什么意思!??
2015-06-30 13:12
w2009w
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:190
专家分:542
注 册:2015-4-20
收藏
得分:5 
实现什么功能也不知道,单纯看代码看不出是用来干什么的!
2015-06-30 13:20
luoye1994
Rank: 2
等 级:论坛游民
帖 子:57
专家分:58
注 册:2015-6-29
收藏
得分:0 
这道题就问实现什么功能
2015-06-30 13:21
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:5 
自己画个图就清楚了

总有那身价贱的人给作业贴回复完整的代码
2015-06-30 13:47
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:5 
供参考,我自己也不知道对不对
程序代码:
typedef struct Node 
{
    DataType data ; 
    struct Node *next ;
}SLNode  ;

void DoSomeThing(SLNode *L)    
{    //假设有N个节点 L是第一个节点
     //DoSomeThing()函数功能是将第二个节点移动到最后一个节点
    SLNode *Q, *P, *S = L ->next ;
    if(S->NULL && S ->next != NULL)    //这里错了可能是这样吧if(S != NULL && S ->next != NULL)
    {
        Q = S  ;         //Q S都是第二个节点
        S = S -> next ;  //S 是第三个节点
        P = S  ;         //P 是第三个节点  (直接让P = S->next是一样的)

        while(P -> next != NULL)
            P = P -> next ; //P是最后一个节点
        L -> next = Q -> next ;  //将第三个节点地址放在第一个结点的next成员中
        P -> next = Q ;          //将第二个节点地址放在最后一个节点next成员中
        Q -> next = NULL ;       //将最后一个节点的next成员设为NULL 
    }
}


人有多懒,编程就有多难。
2015-06-30 14:01
luoye1994
Rank: 2
等 级:论坛游民
帖 子:57
专家分:58
注 册:2015-6-29
收藏
得分:0 
回复 5楼 TAAAAB
请问大神这个可以实现什么功能!
2015-06-30 20:52
luoye1994
Rank: 2
等 级:论坛游民
帖 子:57
专家分:58
注 册:2015-6-29
收藏
得分:0 
回复 3楼 luoye1994
我把图画了越画越乱,最后都把原来的推的都弄乱了
2015-06-30 21:13
luoye1994
Rank: 2
等 级:论坛游民
帖 子:57
专家分:58
注 册:2015-6-29
收藏
得分:0 
回复 4楼 embed_xuel
#include<stdio.h>
#include<malloc.h>
typedef int DataType ;
typedef struct Node
{
    DataType data ;
    struct Node *next ;
}SLNode ;
void Initiate(SLNode **head)
{
    *head = (SLNode *)malloc(sizeof(SLNode)) ;
    (*head) ->next = NULL ;
}
void Insert(SLNode *head , int i , DataType x)
{
    SLNode *p = head , *q ;
    int j = -1 ;
    while (p->next != NULL && j < i - 1)
    {
        p = p ->next ;
        j ++ ;
    }
    q = (SLNode *)malloc(sizeof(SLNode)) ;
    q ->data = x ;
    q ->next = p ->next ;
    p ->next = q ;
}
void DoSomeThing(SLNode *L)
{
    SLNode *Q , *P , *S = L -> next ;
    if(S != NULL && S ->next != NULL)
    {
        Q = S ;

        S = S ->next ;
        
        P = S ;
        while (P ->next != NULL)
            P = P ->next ;
        L->next = Q ->next ;
        P ->next = Q ;
        Q ->next = NULL ;
    }
}
int Get(SLNode *head , int i , DataType *x)
{
    SLNode *p = head ;
    int j = -1 ;
    while (p ->next != NULL && j < i)
    {
        p = p ->next ;
        j ++ ;
    }
    *x = p ->data ;
    return 1 ;
}
int main()
{
    SLNode *s ;
    int i , x;
    Initiate(&s) ;
    for(i = 0 ; i < 10 ; i ++)
        Insert(s , i , i + 1) ;
    DoSomeThing(s) ;
    for(i = 0 ; i < 10 ; i ++)
    {
        Get(s , i , &x) ;
        printf("%d  " , x ) ;
    }
    printf("\n") ;
    return 0 ;
}
我最后懂了,还得谢谢你
2015-07-01 14:24
快速回复:这么多指针,到底是谁指向谁?大神求助~~~~~~~
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016658 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved