#define success 1
#define failure 0
#define maxsize 100
typedef int elemtype; /elemtype类型根据实际情况而定,这里假设为int*/
typedefstruct
elemtype data[maxsize]; 数组,存储数据元素*/
int last最后一个元素的位置*/
seqlist;
/*顺序表的初始化是指建立一个空表,即分配存储空间,但不包含任何数据元素。*/
int initlist(seqlist *l)
l = seqlist *)malloc(sizeof(seqlist));
if(l ==null)
return failure;
如果顺序表为满,last等于maxsize-1,返回1,否则返回0。
int listisfull(seqlist *l)
if(l->last ==maxsize – 1)
return failure;
附加操作是在顺序表未满的情况下,在表的末端添加一个新元素,然后使顺序表的last加1。
int appendlist(seqlist *l, elemtype item)
if(l->last ==maxsize - 1) /表已满*/
l->data[++l->last] =item;
return success;
插入。int insertlist(seqlist *l, elemtype item, int pos)
int i = 0;
if (l->last ==maxsize - 1) /顺序表已满*/
if (pos ==l->last + 2) /在表尾插入数据元素*/
*移动元素*/
for (i = l->last; i >=pos - 1; -i)
/*插入新的数据元素*/
l->data[pos - 1] =item;
/*表长增1*/
++l->last;
return success;
删除算法。elemtype deletelist(seqlist *l, int pos)
elemtype tmp;
int i = 0;
if (l->last ==1) /表为空*/
if (pos ==l->last + 1) /删除最后一个元素*/
/*表长减1*/
--l->last;
return tmp;
取表元。elemtype getelem(seqlist *l,int pos)
/*表为空或者位置不对*/
if ((l->last ==1) |pos < 1) |pos > l->last + 1))
return l->data[pos-1];
安值查找。int locatelist(seqlist *l, elemtype value)
int i = 0;
if(l->last ==1) /表为空*/
/*查找元素*/
for (i = 0; i <=l->last; +i)
*没有找到元素*/
if (i > l->last)
return i
例2-1】已知顺序表l,写一算法将其倒置。
顺序表倒置的算法实现。
void reverseseqlist(seqlist *l)
elemtype tmp;
int len = l->last + 1;
int i = 0;
for(i = 0; i < len / 2; +i)
例2-2】有数据类型为整型的顺序表la和lb,其数据元素均按从小到大的升序排列,编写一个算法将它们合并成一个表lc,要求lc中数据元素也按升序排列。
按升序合并两个表的算法实现。
seqlist *mergelist(seqlist *la, seqlist *lb)
int i = 0, j = 0, k = 0;
seqlist *lc;
initlist(lc);
if(!lc->data)
while((i <=la->last) &j <=lb->last合并 */
if(la->data[i]
else while(j <=lb->last若b表剩余也直接并归 */
return lc;
例2-3】已知一个存储整数的顺序表la,试构造顺序表lb,要求顺序表lb中只包含顺序表la中所有值不相同的数据元素。
seqlist * purgelist(seqlist *la)
seqlist *lb;
int i = 0;
int j = 0;
int count = 0;
int len = 0;
/*初始化b表*/
initlist(lb);
/*将a表中的第1个数据元素赋给b表*/
appendlist(lb, la->data[0]);
/*依次处理a表中剩余的数据元素*/
数据结构线性表
数据结构实验报告。实验名称 线性表。信息与通信学院,电子信息工程专业。作者 周裕娟 学号 0800220308 实验日期 2010年11月4日。一 实验目的。1 掌握线性表的顺序存储结构。2 掌握顺序表的基本运算并能灵活运用。3 掌握线性表的链式存储结构。4 掌握链表的基本运算并能灵活应用。二 实验...
数据结构第四版实验一 顺序表的基本操作
实验目的 1 掌握建立顺序表的基本方法。2 理解和掌握顺序表元素查找算法。3 掌握顺序表的插入算法的思想和实现。4 掌握顺序表的删除算法的思想和实现。实验内容 1 建立一个顺序表,要求从键盘输入10个整数,并将该顺序表的元素从屏幕显示出来。2 用函数实现在顺序表中查找其中一个元素,如果找到,返回该元...
数据结构作业 树
6.3 试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。6.12 对题6.3所得各种形态的二叉树,分别写出前序 中序和后序遍历的序列。6.19 分别画出和下列树对应的各个二叉树 a bcd 6.22 对于6.19题中给出的各树分别求出以下遍历序列 1 先跟遍历2 后跟遍历。6.26 假设...