/*
* 顺序存储的线性表
*/
#include <stdio.h>
#define OK 1
#define ERR 0
#define LIST_INIT_SIZE 100
#define LIST_INCREMENT 10
#define ElemType char
typedef struct {
ElemType *elem;
int length;//元素个数
int listSize;//总容量
} SqList;
int InitList(SqList *aList)
{
aList->elem = (ElemType *)malloc(sizeof(ElemType)*LIST_INIT_SIZE);
if(NULL == aList->elem)return ERR;
aList->listSize = LIST_INIT_SIZE;
aList->length = 0;
return OK;
}
int ListInsert(SqList *aList,ElemType e,int index)
{
int i;
if( index<0 || index>aList->length ){
printf("Error : Insert %c to wrong position %d\n",e,index);
return ERR;//中间不允许存在空位
}
if( aList->listSize <= aList->length )
{
aList->elem = (ElemType *)realloc(aList->elem,
sizeof(ElemType)*aList->listSize+LIST_INCREMENT);
if(NULL == aList->elem) return ERR;
aList->listSize += LIST_INCREMENT;
}
printf("Insert %c to position %d\n",e,index );
i = aList->length;
while(i>index)
{
aList->elem[i] = aList->elem[i-1];
i--;
}
aList->elem[index] = e;
aList->length++;
return OK;
}
int ListDelete(SqList *aList,ElemType *e,int index)
{
int i = index;
if(i<0 || i>=aList->length)return ERR;
*e = aList->elem[index];
i = index;
while(i<aList->length-1)
{
aList->elem[i] = aList->elem[i+1];
i++;
}
aList->length--;
return OK;
}
int ListTraverse(SqList aList)
{
int i=0;
while(i < aList.length){
printf("%c\t",aList.elem[i]);
i++;
}
printf("\n");
return OK;
}
int main(int argc, char *argv[])
{
SqList aList ;
char element;
int position;
InitList( &aList );
while(1){
printf("Please input element and position to insert in (input ; to quit) :\n");
scanf("%1s,%d",&element,&position);
if(';' == element) break;
ListInsert(&aList,element,position);
}
ListDelete(&aList,&element,0);
ListTraverse(aList);
printf("length :%d . \n",aList.length);
return OK;
}
分享到:
相关推荐
线性表的顺序存储,此程序主要实现线性表的顺序存储,有C++语言实现,还是比较轻易看得懂的!
实验一顺序存储线性表的基本运算实验目的掌握线性表的定义、顺序存储的方法及基本操作。实验一顺序存储线性表的基本运算实验目的掌握线性表的定义、顺序存储的方法及基本操作。2掌握将算法在VC++6.0语言环境下实现的...
数据结构中的 顺序线性表的基本操作,适合刚学数据结构的同学用
线性表的顺序存储线性表的顺序存储线性表的顺序存储线性表的顺序存储线性表的顺序存储线性表的顺序存储线性表的顺序存储
实验一 顺序结构线性表基本操作的实现 线性表基本操作的实现 线性表的顺序存储有何优缺点?
顺序存储结构线性表的插入与删除 设线性表中元素类型为整型,且L=(10,25,52,09,31,88,26,44,50,78),请把上述算法用C或C++实现,并验证程序的正确性。程序结构提示如下:
初学者线性表顺序存储的创建插入删除查询。C语言课后作业。可供参考。
线性表的顺序存储的c语言实现,带有注释,简洁明了,一看即懂
顺序存储的线性表基本算法实现。运行环境为VS2012,仅提供代码。
线性表的顺序存储与实现。采用顺序存储的方式实现线性表,并实现了一些基本功能,包括创建、销毁、清空、插入等一些常规的操作。
数据结构 实验1 顺序存储的线性表 数据结构 实验1 顺序存储的线性表 数据结构 实验1 顺序存储的线性表 数据结构 实验1 顺序存储的线性表
这是一个顺序存储结构的线性表的c语言实现程序,实现对顺序表的操作
一个较为完整的顺序存储的线性表,包含了很多函数及基础算法。main可运行测试。
线性表顺序存储demo,实现了线性表顺序存储的基本操作
数据结构实验报告(1) 学院: 专业: 班级: "姓名 " "学号 " "实验组" " "实验时间 "2011-10-28 "指导教师" "成绩 " " "实验项目名称 "线性表的顺序存储结构 " "实 "1. 熟练掌握线性表的基本操作在顺序存储和链式...
有两个指数递减的一元多项式,写一程序先求这两个多项式的和,再求它们的积。
数据结构的线性表实现,顺序线性表的建立,输入,输出,排序,以及归并。可以参考一下
顺序存储结构的线性表C语言源码,线性表的顺序存储结构是指用一段地址连续的存储单元(就是数组)依次存储线性表的数据元素
1、某软件公司大约有30名员工,每名员工有姓名、工号、职务等属性,每年都有员工离职和入职。把所有员工建立一个线性表,建立离职和入职函数,当有员工离职或入职时,修改线性表,并且显示最新的员工...这个是顺序存储
实验 二 基于链式存储结构 实现线性表的基本的 常见的运算 提示: ⑴ 提供一个实现功能的演示系统 ⑵ 具体物理结构和数据元素类型自行选定 ⑶ 线性表数据可以使用磁盘文件永久保存