线性表的顺序存储

来源:互联网 发布:宅男女神软件 编辑:程序博客网 时间:2024/04/30 04:06
#include<stdio.h>//malloc函数头文件//ElementType 表示数据类型 MAXSIZE表示数组最大容量typedef struct{    ElementType Data[MAXSIZE];    int Last;} List;//初始化(建立空的顺序表)List *MakeEmpty(){    List *PtrL;    PtrL=(List *)malloc(size(List));    PtrL->Last=-1;    return PtrL;}//查找int Find( ElementType X, List *PtrL){    int i=0;    while(i<=PtrL->Last&&PtrL->Data[i]!=X)        i++;    if(i>prtL->Last)        return -1;    else return i;//返回储存位置}//插入void Insert(ElementType X,int i,List *PrtL){    int j;    if(PtrL->Last==MAXSIZE-1)//表示表空间已满 不可用于插入    {        cout<<"表满"<<endl;        return;    }    if(i<1||i>PtrL->Last+2)    {        cout<<"位置不合法"<<endl;        return;    }    for(j=PtrL->Last; j>=i-1; j--)        PtrL->data[j+1]=PtrL->Data[j];//从第i个元素开始整体后移一位    PtrL->Data[i+1]=X;//插入新元素    PtrL->Last++;//数组长度加1    return;}void Delete(int i,List*PtrL){    if(i<1||i>PtrL->Last)        cout<<"位置非法,不存在第"<<i<<"个元素"<<endl;    else        for(int j=i; j<=PtrL->Last; j++)            PtrL->Data[j-1]=PtrL->Data[j];//从第i个元素开始整体前移一位    PtrL->Last--;    return PtrL;}

malloc函数简介

第一、malloc 函数返回的是void * 类型。对于C++,如果你写成:p= malloc (sizeof(int)); 则程序无法通过编译,报错:“不能将 void* 赋值给int * 类型变量”。所以必须通过 强制转换。而对于C,没有这个要求,但为了使C程序更方便的移植到C++中来,建议养成强制转换的习惯。

第二、函数的实参为 sizeof(int) ,用于指明一个整型数据需要的大小。

0 0
原创粉丝点击