| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1080 人关注过本帖
标题:线性表打印出来
取消只看楼主 加入收藏
hg654321free
Rank: 1
等 级:新手上路
帖 子:15
专家分:5
注 册:2013-4-20
收藏
 问题点数:0 回复次数:2 
线性表打印出来
/*
** Copyright (C) All rights reserved.
*/
#define MAXSIZE 20
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0

typedef int ElemType;
typedef int Status;

typedef struct
{
    ElemType data[MAXSIZE];
    int length;      //线性表当前长度
}SqList;

// Status 是函数的类型,其值是函数结果状态代码,如OK等。
// 初始条件:顺序线性表L已存在,1 <= i <= ListLength(L)
// 操作结果:用e返回L中第i个数据元素的值。

Status GetElem(SqList L, int i, ElemType *e)
{
    if( L.length==0 || i<1 || i>L.length )
    {
        return ERROR;
    }
    *e = L.data[i-1];

    return OK;
}

/* 初始条件:顺序线性表L已存在,1<=i<=ListLength(L)。 */
/* 操作结果:在L中第i个位置之前插入新的数据元素e,L长度+1。*/

Status ListInsert(SqList *L, int i, ElemType e)
{
    int k;

    if( L->length == MAXSIZE )  // 顺序线性表已经满了
    {
        return ERROR;
    }
    if( i<1 || i>L->length+1)   // 当i不在范围内时
    {
        return ERROR;
    }
    if( i <= L->length )   // 若插入数据位置不在表尾
    {
        /* 将要插入位置后数据元素向后移动一位 */
        for( k=L->length-1; k >= i-1; k-- )
        {
            L->data[k+1] = L->data[k];
        }
    }

    L->data[i-1] = e;  // 将新元素插入
    L->length++;

    return OK;
}

Status ListDelete(SqList *L, int i, ElemType *e)
{
    int k;

    if( L->length == 0)
    {
        return ERROR;
    }
    if( i<1 || i>L->length)
    {
        return ERROR;
    }

    *e = L->data[i-1];

    if( i < L->length)
    {
        for( k=i; k < L->length; k++)
        {
            L->data[k-1] = L->data[k];
        }
    }

    L->length--;

    return OK;
}

L->data[k-1] = L->data[k] 怎么打印出来
搜索更多相关主题的帖子: Copyright 线性表 
2013-04-20 19:48
hg654321free
Rank: 1
等 级:新手上路
帖 子:15
专家分:5
注 册:2013-4-20
收藏
得分:0 
回复 2楼 笑傲
还是没显示出来呀?
/*
** Copyright (C) All rights reserved.
*/
#include <stdio.h>
#define MAXSIZE 20
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0

typedef int ElemType;
typedef int Status;
void print();
typedef struct
{
    ElemType data[MAXSIZE];
    int length;      //线性表当前长度
}SqList;

// Status 是函数的类型,其值是函数结果状态代码,如OK等。
// 初始条件:顺序线性表L已存在,1 <= i <= ListLength(L)
// 操作结果:用e返回L中第i个数据元素的值。

Status GetElem(SqList L, int i, ElemType *e)
{
    if( L.length==0 || i<1 || i>L.length )
    {
        return ERROR;
    }
    *e = L.data[i-1];

    return OK;
}

/* 初始条件:顺序线性表L已存在,1<=i<=ListLength(L)。 */
/* 操作结果:在L中第i个位置之前插入新的数据元素e,L长度+1。*/

Status ListInsert(SqList *L, int i, ElemType e)
{
    int k;

    if( L->length == MAXSIZE )  // 顺序线性表已经满了
    {
        return ERROR;
    }
    if( i<1 || i>L->length+1)   // 当i不在范围内时
    {
        return ERROR;
    }
    if( i <= L->length )   // 若插入数据位置不在表尾
    {
        /* 将要插入位置后数据元素向后移动一位 */
        for( k=L->length-1; k >= i-1; k-- )
        {
            L->data[k+1] = L->data[k];
        }
    }

    L->data[i-1] = e;  // 将新元素插入
    L->length++;

    return OK;
}

Status ListDelete(SqList *L, int i, ElemType *e)
{
    int k;

    if( L->length == 0)
    {
        return ERROR;
    }
    if( i<1 || i>L->length)
    {
        return ERROR;
    }

    *e = L->data[i-1];

    if( i < L->length)
    {
        for( k=i; k < L->length; k++)
        {
            L->data[k-1] = L->data[k];
        }
    }

    L->length--;

    return OK;
}

void print(SqList *L)
{
    int i;
   for(i = 0 ; i < L->length ; i++)
       printf("%d " , L->data[i]);
}

int main()
{
    print();
}
2013-04-21 20:28
hg654321free
Rank: 1
等 级:新手上路
帖 子:15
专家分:5
注 册:2013-4-20
收藏
得分:0 
回复 4楼 笑傲
在哪里建立呀?刚听鱼C数据结构,也不清楚什么是线性表,链接表。就是抄来的代码。
2013-04-21 21:05
快速回复:线性表打印出来
数据加载中...
 
   



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

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