您的位置:首页 > 其它

顺序链表的错误

2015-07-23 13:19 337 查看
第一次写顺序链表与指针。顺序链表使用数组实现,其中遇到的问题有

1、函数说明与使用的区别

int ListInsert(SqList* L,int i,int e)//函数定义

signal= ListInsert(&L,i,e); //函数使用

2、指针使用时注意 只定义时 没有初始化 ,此时的指针是野指针。

#include<stdio.h>

//typedef int DataType;

#define MAXSIZE 100

//typedef int DataType;

typedef struct

{

int data[MAXSIZE];// = {1,2,3,4,5,6,7,8,9,0,12,23,4,5,345};

int length;

}SqList;

int ListInsert(SqList* L,int i,int e)//函数定义

{

int k;

if(L->length == MAXSIZE)

{

return 0;

}

if(i<1 || i >L->length+1)

{

return 0;

}

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 1;

}

void main(void)

{

int i;
int d;

int e = 100;

int signal ;

SqList p;//不能直接定义SqList *L;此时只是定义了指针 没有初始化指针,不能使用

SqList *L = &p;

for(d = 0;d <10;d++)

{

L->data[d] = d+1;

}

L->length =10;

printf("please input i = ");

scanf("%d",&i);

signal= ListInsert(L,i,e); //函数使用

printf("\n");

if(signal == 1)

{

int y;

for(y = 0; y < L->length; y++)

{

printf("%d ",L->data[y]);

}

printf("\n");

}

else

printf("错误\n");

}

3、注意函数内部定义变量时,把所有变量定义放在前面。占用字节数越少的变量定义靠前。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: