| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 526 人关注过本帖
标题:数据结构线性表问题
只看楼主 加入收藏
qwe885167759
Rank: 4
等 级:业余侠客
威 望:5
帖 子:148
专家分:259
注 册:2013-3-12
结帖率:72.22%
收藏
已结贴  问题点数:10 回复次数:4 
数据结构线性表问题
#include<iostream.h>
#include<stdlib.h>
#include <malloc.h>
#define OVERFLOW 0
#define OK 1
#define ERROR 0
#define LIST_INIT_SIZE 10//线性表存储空间的初始增量
#define LISTINCREMENT 10 // ?
typedef struct
{
    int * elem;// 存储空间基址
    int length;//当前长度
    int listsize;//当前分配的存储容量
}SqList;
SqList L;
int InitList_Sq(SqList & L)
{//构造一个新的线性表。
    L.elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
    if(!L.elem)
        exit(OVERFLOW);//存储容量失败
    L.length=0; //空表长度为0
    L.listsize=LIST_INIT_SIZE;//存储初始容量
    return OK;
}//InitList_Sqint
void main()
 {
     SqList L;
     int i,n;
     int e;
     cout<<"输入顺序表的个数:"<<endl;
     cin>>n;
     int *p=(int *)malloc(n*sizeof(int));
     InitList_Sq(L);
     cout<<"输入线性表"<<n<<"个元素的值"<<endl;
     for(i=0;i<n;i++)
     {
         
         cin>>p[i];
         L.elem[i]=p[i];
        // InitList_Sq(L);
     }
     for (int j=0;j<n;j++)
     {
        cout<<l.elem[j]<<endl;
     }
    /* cout<<endl;
     L.length=i;
     cout<<endl;
     cout<<"输入要插入元素的值"<<endl;cin>>e;
     cout<<endl;
     cout<<"输入要插入的位置"<<endl;cin>>i;
//     LIstInsert_Sq( L, i, e);
     for(i=0;i<n+1;i++)cout<<L.elem[i];
     cout<<endl;cout<<"输入要删除的位置"<<endl;cin>>i;
//     ListDelete_Sq(L,i,e);
     for(i=0;i<n;i++)cout<<L.elem[i];
     free(p);*/
 }

为什么在结构体中typedef struct
{
    int * elem;// 存储空间基址
    int length;//当前长度
    int listsize;//当前分配的存储容量
}SqList;
int *elem在main函数输入时成了L.elem[j];求详细解答

搜索更多相关主题的帖子: include 线性表 空间 
2013-09-27 11:04
未未来
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:182
专家分:157
注 册:2012-11-6
收藏
得分:6 
L.elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
这个步骤就是
分配一个动态数组,并返回指向新分配数组的第一个元素的指针;
该返回值初始化了指针 elem;
对elem做下标操作符就是取元素,
2013-09-27 19:47
zyy_hz
Rank: 2
等 级:论坛游民
帖 子:8
专家分:24
注 册:2013-2-18
收藏
得分:4 
SqList L;是申明了一个结构体变量。这个结构体变量里包括了三个成员变量elem,length,listsize。
而L.elem是对L中的elem这个int型指针成员变量进行操作,L.elem[j]说明是对这个数组的第j个元素进行操作(包括赋值和取值)(下标从0开始)。还有就是这个程序存在着数组越界问题。当n > LIST_INIT_SIZE时。
我是瞎打一通。希望对LZ有用。
2013-09-28 12:09
qwe885167759
Rank: 4
等 级:业余侠客
威 望:5
帖 子:148
专家分:259
注 册:2013-3-12
收藏
得分:0 
回复 3楼 zyy_hz
谢谢,有点明白了

我本楚狂人,凤歌笑孔丘
2013-09-28 12:44
qwe885167759
Rank: 4
等 级:业余侠客
威 望:5
帖 子:148
专家分:259
注 册:2013-3-12
收藏
得分:0 
回复 2楼 未未来
嗯嗯,懂了。谢谢

我本楚狂人,凤歌笑孔丘
2013-09-28 12:46
快速回复:数据结构线性表问题
数据加载中...
 
   



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

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