wangwan1 2015-04-20 12:48 采纳率: 0%
浏览 2089

顺序链表初始化错误,表的长度无法初始化

#include <stdio.h>
#include <stdlib.>

// squeue list operator

#define MAXSIZE 100

typedef int Dataype;

typedef struct
{
    Dataype data[MAXSIZE];
    int length;
}Sqlist;

// init a sqlist
void Init_sqlist(Sqlist *list)
{
    list = (Sqlist *)malloc(sizeof(Sqlist));
    list->length = 10;
    if (NULL == list)
    {
        perror("Init_sqlist error");
        exit(-1);
    }
}
// append element to sqlist
void Append_sqlist(Sqlist *list,Dataype x)
{
    printf("length %d\n", list->length);
    if (MAXSIZE !=list->length)
    {
        list->data[list->length] = x;
        list->length++;
    }
}
// insert element into sqlist at index i
void Insert_sqlist(Sqlist *list,int i,Dataype x)
{
    int j;
    if (MAXSIZE == list->length)
    {
        printf("Sqlist full\n");
        exit(-1);
    }
    if (i <0 || i > list->length)
    {
        printf("insert index error\n");
        exit(-1);
    }
    for (j = list->length-1; j >= i-1; j--)
    {
        list->data[j+1] = list->data[j];
    }
    list->data[i-1] = x;
    list->length = list->length +1;
}
// delete element which index i
void Delete_sqlist(Sqlist *list,int i)
{
    int j;
    if (i<0 || i>list->length)
    {
        printf("Delete_sqlist index erro\n");
        exit(-1);
    }
    if (0==list->length)
    {
        printf("empty sqlist\n");
        exit(-1);
    }
    for (j = i-1; j < list->length; ++j)
    {
        list->data[j] = list->data[j+1];
    }
}
// find element which x
int Locate_sqlist(Sqlist *list,Dataype x)
{
    int i;
    for (i = 0; i < list->length; ++i)
    {
        if (x == list->data[i])
        {
            return i;
        }
    }
    return -1;
}
//  print sqlist
void Print_sqlist(Sqlist *list)
{
    int i;
    if (0 != list->length)
    {
        for (i = 0; i < list->length; ++i)
        {
            printf("%d ", list->data[i]);
        }
        printf("\n");
    }
    else
        printf("empty\n");
}

int main(int argc, char const *argv[])
{
    int  i;
    Sqlist *list;
    Init_sqlist(list);
    for (i = 0; i < 10; ++i)
    {
        Append_sqlist(list,i);
    }
    Insert_sqlist(list,5,10);
    Print_sqlist(list);
    return 0;
}

  • 写回答

3条回答 默认 最新

  • devmiao 2015-04-20 12:52
    关注
     void Init_sqlist(Sqlist *list)
    ->
    void Init_sqlist(Sqlist *&list)
    
    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题