| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3219 人关注过本帖
标题:一个指针数组,每个数组里的元素是指向一些链表的头结点
只看楼主 加入收藏
小小菜鸟蛋
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2012-8-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:20 
一个指针数组,每个数组里的元素是指向一些链表的头结点
编写一个C++程序:定义一个指针数组,然后数组里面存放的是动态创建的一些链表的头结点地址,我编写的编译通不过,求各位大神帮帮忙,求指导。。
程序代码:
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
const int n = 5;

typedef struct LinkLNdoe
{
    int no;
    int Data;
    struct LinkLNode *next;
}LinkLNode,*LinkList;
LinkLNode *head,*end;

LinkLNode *Array_FirstLinkListCreat( LinkList &L,int m )
{
    int i = 0,j = 0;
    LinkLNode *Array[n+1];
    LinkLNode *p = NULL,*q = NULL;
    for( i = 1;i <= n;i++ )
    {
        p = q = l = (LinkLNode *)malloc(sizeof(LinkLNode));
        Array[i] = p;
        p->no = 1;
        head = end = p;
    }
    for( i = 1;i <= n;i++ )
    {
        for( j = 2;j <= m ;j++ )
        {
            q = l = (LinkLNode *)malloc(sizeof(LinkLNode));
            q->no = j;
            end->next = q;
            end = p = q;
            end->next =    NULL;
        }
    }
    return (Array[1]);
}

int main ()
{
    LinkList L;
    LinkLNode *p,*q;
    int m = 3;
    int i = 0,j = 0;
    p = Array_FirstLinkListCreat( L,m );
    system("pause");
    return 0;
}



搜索更多相关主题的帖子: 元素 动态 
2012-08-04 21:52
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:7 
程序代码:

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
const int n = 5;

typedef struct tagLinkLNdoe
{
    int no;
    int Data;
    struct tagLinkLNode *next;
}LinkLNode, *LinkList;
LinkLNode *head, *end;

LinkLNode *Array_FirstLinkListCreat(LinkList &l, int m)
{
    int i = 0,j = 0;
    LinkLNode *Array[n+1];
    LinkLNode *p = NULL, *q = NULL;
    for( i = 1;i <= n;i++ )
    {
        p = q = l = (LinkLNode *)malloc(sizeof(LinkLNode));
        Array[i] = p;
        p->no = 1;
        head = end = p;
    }
    for( i = 1;i <= n;i++ )
    {
        for( j = 2;j <= m ;j++ )
        {
            q = l = (LinkLNode *)malloc(sizeof(LinkLNode));
            q->no = j;
            end->next = (tagLinkLNode *)q;
            end = p = q;
            end->next =  NULL;
        }
    }
    return (Array[1]);
}

int main ()
{
    LinkList L;
    LinkLNode *p,*q;
    int m = 3;
    int i = 0,j = 0;
    p = Array_FirstLinkListCreat(L, m);
    system("pause");
    return 0;
}


我不会C++ 虽然能把它改成能编译过的但手段比较卑劣 期待大牛解答。。
2012-08-04 23:35
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
很好奇这种东西在C++里怎么写 还是说 你写的这个本事就是C的思路 不属于C++呢 总感觉不大和谐

我也很好奇 大牛快现身罢
2012-08-04 23:37
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
有没有懂C++的看我写的对不对

程序代码:
#include<iostream>

using namespace std;

const int n = 5;

struct LinkLNode
{
    int no;
    int Data;
    struct LinkLNode *next;
};
typedef LinkLNode *LinkList;
LinkLNode *head, *end;

LinkLNode *Array_FirstLinkListCreat(LinkList &l, int m)
{
    int i = 0,j = 0;
    LinkLNode *Array[n+1];
    LinkLNode *p = NULL, *q = NULL;
    for( i = 1;i <= n;i++ )
    {
        p = q = l = new LinkLNode;    // (LinkLNode *)malloc(sizeof(LinkLNode));
        Array[i] = p;
        p->no = 1;
        head = end = p;
    }
    for( i = 1;i <= n;i++ )
    {
        for( j = 2;j <= m ;j++ )
        {
            q = l = new LinkLNode;    // (LinkLNode *)malloc(sizeof(LinkLNode));
            q->no = j;
            end->next = (LinkLNode *)q;
            end = p = q;
            end->next =  NULL;
        }
    }
    return (Array[1]);
}

int main ()
{
    LinkList L;
    LinkLNode *p,*q;
    int m = 3;
    int i = 0,j = 0;
    p = Array_FirstLinkListCreat(L, m);
    //system("pause");
    return 0;
}

2012-08-04 23:59
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:7 
这个程序都没看懂要干嘛呀,谁来加点注释。
2012-08-05 00:09
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用pangding在2012-8-5 00:09:45的发言:

这个程序都没看懂要干嘛呀,谁来加点注释。
建立一个链表 我感觉他写的思路有问题 按照他说的应该是个C++程序 可是从头文件到实现思路都是C的那一套

不过你要说这是C也不对 用了引用 C也编译不过 很纠结的一个程序啊

现在我能改到编译无错 但对不对就不知道了
2012-08-05 00:13
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
const int n = 5;

这个也属于C++罢
2012-08-05 00:14
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
那个函数的参数 m 是干什么的。初始化完了之后链表应该变成什么样呀?
2012-08-05 00:15
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
p = q = l = new LinkLNode;    // (LinkLNode *)malloc(sizeof(LinkLNode));

这个new是这样用的不?
2012-08-05 00:18
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
是这样用。
但是这么写搞出一大堆全局变量。C++ 的习惯一般是把这些东西封装在类里。楼主应该就是想写 C 语言的东西。
在 C++ 里,像 struct 这样的关键字有时都可以省掉的。比如:
程序代码:
 typedef struct _LinkLNdoe
{
    int no;
    int Data;
    _LinkLNode *next;
}LinkLNode,*LinkList;

2012-08-05 00:22
快速回复:一个指针数组,每个数组里的元素是指向一些链表的头结点
数据加载中...
 
   



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

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