顺序链表的错误
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、注意函数内部定义变量时,把所有变量定义放在前面。占用字节数越少的变量定义靠前。
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、注意函数内部定义变量时,把所有变量定义放在前面。占用字节数越少的变量定义靠前。
相关文章推荐
- cisco 交换机中ip default-gateway命令
- C语言自学笔记
- IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.i
- 手动让客户端从WSUS服务器更新
- 动态规划入门教程之金矿的故事
- Triumph! Android Studio 1.2 Sneaks In Full Testing Support(译文)
- 前端开发面试题
- Redis主从配置
- 设计模式之闲话一两句
- 1054. The Dominant Color (20)
- iGrimaceV3.0电脑安装教程
- "真实"和"谎言"
- 1054. The Dominant Color (20)
- 为tomcat设置基于主机名的虚拟主机并使其能在本机上运行的步骤
- 使用WITH AS提高性能简化嵌套SQL
- 谷歌说使用新顶级域名不会影响排名
- Android 删除再创建导致open failed: EBUSY (Device or resource busy)
- 哈希算法快速查表的原理
- 局域网内通过ip获取对方计算机名
- Git操作的一些注意