线性表的顺序存储
2015-08-08 09:55
260 查看
#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) ,用于指明一个整型数据需要的大小。
相关文章推荐
- 南邮 OJ 1998 GRID
- 前端之路
- WPF 自定义Metro Style窗体
- Python实现多线程抓取妹子图
- 常用正则表达式
- HDU 1565 方格取数(1)(最小割-Dinic)
- 南邮 OJ 1997 二叉树
- 开发android,我们需要哪些技能基础
- 周末你好
- 用LUA写一个日历
- HDU 4734 F(x)
- Windows 7/Vista下安装Oracle Developer Suit遇到的几个问题
- elasticsearch marvel插件安装失败的解决方法
- 南邮 OJ 1996 ELEVATOR
- javascript 调用其他页面的js函数或变量的脚本
- 设计模式---
- 架构师速成8.3-架构师必须要了解的规则(转)
- 关于DDOS攻击
- vc 输出到调试器
- 常用前端开发工具合集