数据结构-顺序表的初始化



//顺序表的初始化
#include <stdio.h>
#include <stdlib.h>//
#define OK 1;
#define OVERFLOW -2
#define MAXSIZE 100//顺序表可能达到的最大长度 
typedef int Status;//Status是函数的类型,其值是函数结果状态代码,如OK等  
typedef int ElemType;//ElemType是线性表中数据元素的类型,此处用int
typedef struct
{
	ElemType *elem;//存储空间的基地址 
	int length;//当前长度 
	int listsize;//当前分配的存储容量 
}SqList;
Status InitList_Sq(SqList &L)//构造一个空的顺序表 
{
	L.elem=new ElemType[MAXSIZE];//为顺序表分配一个大小为MAXSIZE的数组空间 
	if(!L.elem) exit(OVERFLOW);//存储失败 
	L.length=0;//空表长度为零 
	L.listsize=MAXSIZE;
	return OK;
}
Status ListTraverse(SqList L)//  初始条件:顺序线性表L已存在  
{
	ElemType *p;
	p=L.elem;
	int i;
	printf("线性表当前容量为:%d\n",L.listsize);
	if(L.length>0)
	{
		printf("当前线性表有%d个元素,分别是\n",L.length);
		for(i=1;i<=L.length;i++)
		{
			printf("%d ",*p++);
		}
	}
	else 
	{
		printf("目前还是空线性表.\n");
	}
}
int main()
{
	SqList la;
	InitList_Sq(la);
	ListTraverse(la);
}

Exit()
函数名: exit()
所在头文件 :stdlib.h
功 能: 关闭所有文件,终止正在执行的程序。
exit(1)表示异常退出.这个1是返回给操作系统的不过在DOS好像不需要这个返回值
exit(x)(x不为0)都表示异常退出
exit(0)表示正常退出
用 法: void exit(int status);
参 数 : status //程序退出的返回值.
程序例:
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
int main(void)
{
int status;
printf("Enter either 1 or 2\n");
status = getch();
/* Sets DOS errorlevel */
exit(status - '0');
/* Note: this line is never reached */
return 0;
}
exit()和return的区别:
按照ANSI C,在最初调用的main()中使用return和exit()的效果相同。
但要注意这里所说的是“最初调用”。如果main()在一个递归程序 中,exit()仍然会终止程序;但return将
控制权移交给递归的前一级,直到最初的那一级,此时return才会终止程序。return和exit()的另一个区别
在于,即使在除main()之外的函数中调用exit(),它也将终止程序。



相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页