第2章线性表
来源:互联网 发布:cydia impactor软件源 编辑:程序博客网 时间:2024/05/10 23:10
线性结构特点:在数据元素非空有限集合中,(1)存在唯一的一个被称为“第一个”的数据元素;(2)存在唯一的一个被称为“最后一个”的数据元素;(3)除了第一个之外,集合中每个数据元素均只有一个前驱;(4)除了最后一个之外,集合中每个数据元素均只有一个后继;
线性表的顺序表示和实现:
#include<stdio.h>#include<malloc.h>#define longth 100#define increace 10typedef struct{ int *elem; int length; int listsize;}SqList;int InitList(SqList &L){//建立顺序表 L.elem=(int *)malloc(longth*sizeof(int)); if(!L.elem) exit(0); L.length=0; L.listsize=longth; return 1;}int ListInsert(SqList &L,int i,int e){//插入数据 if(i<1||i>L.length+1)return 1; if(L.length>=L.listsize) { int *newbase=(int *)realloc(L.elem,(L.listsize+increace)*sizeof(int)); if(!newbase)exit(5); L.elem=newbase; L.listsize+=increace; } int *q=&(L.elem[i-1]); for(int *p=&(L.elem[L.length-1]);p>=q;--p) *(p+1)=*p; *q=e; ++L.length; return 2;}int ListDelete_Sq(SqList &L ,int i){ int e; if((i<1)||(i>L.length)) return errno; int * p=&(L.elem[i-1]); e=*p; int * q=L.elem+L.length-1; for(++p;p<=q;++p) *(p-1)=*p; --L.length; return e;}void show(SqList &l){ for(int p=0;p<l.length;++p) printf("%d ",l.elem[p]);}int main(){ int temp,element; SqList a; InitList(a); printf("输入五个数:\n"); for(int i=1;i<=5;++i) { int t; scanf("%d",&t); ListInsert(a,i,t); } printf("你输入了:\n"); show(a); printf("\n输入你要删除的位置:"); scanf("%d",&temp); element=ListDelete_Sq(a,temp); printf("你删除了%d\n",element); show(a); getchar();}
0 0
- 第2章 线性表
- 第2章 线性表
- 第2章线性表
- 第2章 线性表
- 第2章 线性表
- 第2章 线性表(答案)
- 数据结构 第2章 线性表
- 数据结构(第2章: 线性表)
- 数据结构第2章线性表
- Leetcode 第2章 线性表
- 第2章受限的线性表
- 第2章_线性表
- 第3章 线性表
- 第1章线性表
- 第 3 章 线性表
- 第2章 线性表——顺序线性表插入和表示学生信息
- 第2章 线性表——链式线性表的表示和实现
- 第2章 线性表——链式线性表元素的插入
- cocos2d-x: 死磕"HelloWorld"(5)——场景渲染准备工作
- 澤水困
- MAC下安装twisted, 并设置为eclipse插件使用
- 利用tomcat服务器配置https双向认证
- 初探C/C++ typedef关键字
- 第2章线性表
- cocos2d-x: 死磕"HelloWorld"(6)——场景渲染的实施
- 设计紧凑将更多的空间让给了乘客
- Linux目录结构
- 给创新工场求职者的一封信
- 给出一个set的字符和一个正数k,求所有由这个set能组成长度为k的字符串集合 print-all-combinations-of-given-length
- Next Permutation
- ubuntu桌面系统安装
- 毕业后的五年拉开大家差距的原因在哪里?