数据结构上机考试练习代码,置于此以备后用!
#include<stdio.h>
#define ListSize 100
//定义顺序表存放的数据类型
typedef int DataType;
//定义顺序表的结构
typedef struct{
//用于存放元素的数组
DataType data[ListSize];
//用于标示顺序表元素个数的变量
int length;
}Seqlist;
//顺序表插入
void InsertList(Seqlist *L,DataType x,int i)
{
int j;
//如果插入位置i小于1或大于当前顺序表长度,则提示出错
if(i<1||i>L->length+1)
{
Error("position error");
return;
}
//如果当前顺序表长度已达峰值,则提示溢出
if(L->length>=ListSize)
{
Error("overflow");
return;
}
//循环后移插入位置及其后边的元素
for(j=L->length-1;j>i-1;j--)
{
L->data[j+1]=L->data[j];
}
//插入数据
L->data[i-1]=x;
L->length++;
}
//打印错误
void Error(char *c)
{
printf("there is a error : %s \n",c);
}
void DeleteList(Seqlist *L,int i)
{
int j;
//如果当前顺序表的长度为0,则提示当前顺序表为空
if(L->length==0)
{
Error("this list is null");
}
//如果当前指定的位置小于1或大于表长,则提示其位置错误
else if(i<1||i>L->length)
{
Error("position error");
}
else
{
//否则,循环将位置i之后的原始顺序前移一位
for(j=i;j<=L->length-1;j++)
{
L->data[j-1]=L->data[j];
}
//表长减1
L->length--;
}
}
//打印表中所有元素
void PrintList(Seqlist *L)
{
int i;
//如果当前顺序表的长度为0,则提示当前顺序表为空
if(L->length==0)
{
Error("this list is null");
return;
}
else
{
for(i=0;i<L->length-1;i++)
{
printf("%d ",L->data[i]);
}
}
}
int main()
{
int i;
Seqlist *list;
list=(Seqlist*)malloc(sizeof(list));
for(i=1;i<ListSize;i++)
{
InsertList(list,i,i);
}
PrintList(list);
printf("the data element of seqlist is %d \n",list->length);
DeleteList(list,20);
printf("the data element of seqlist is %d \n",list->length);
free(list);//释放list所占用内存
}
分享到:
相关推荐
关于c语言的程序与习题 有关于顺序链表 单链表 双链表 栈等程序,运用相关软件打开并运行,就可以看到效果
包括链表的正序创建和逆序创建,输出,删除插入一个节点,求链表长度,合并。
链表实现(单向链表、顺序表、双向链表、循环链表)的相关代码
双向链表的API和C语言...另外还有线性表顺序存储、单链表、循环链表的C语言实现,文章及代码资源均已上传,可在专栏《数据结构与算法学习笔记》中查看,欢迎大家查看下载,如果内容有不合理的地方,欢迎大家批评指正。
压缩包内有顺序表、单链表、双链表的.c.h文件,都有比较详细的注释,通俗易懂,面向初学者!!!作者本身也是个初学者,如果有任何问题均可联系我。代码亲测可用
整数链表排序的c源代码 说明:试按以下给出的...1、 试用C语言编程实现以上功能 2、 10个数字随机生成 3、 程序可读性好 ps:头文件#include<stdafx.h> 中包含 #include #include #include #include <stdlib.h>
c语言数据结构线性表实验(包括顺序表和链表)
所有基本数据结构C语言实现,包括顺序表、链表、二叉树等...
数据结构算法C语言代码实现集合 链表、单链表、双链表、循环链表、二叉树、二分查找、顺序表、队列、栈、图等各种算法的C语言代码实现 我遇到的最好的算法实现了,多亏了它!
一个用链表写的图书管理系统源程序,200多行吧!适合刚学几个月C语言的和数据结构的看看
用C语言实现约瑟夫环,包括两种方法,链表法和顺序法,文件包括实验的报告和源工程代码
利用双向循环链表来实现对长整数的存储。每个节点只存储四位十进制数字。选择该数据结构来完成长整数的加减运算是因为要对长整数进行运算,需要对长整数进行存储,所以选择用链表对长整数存储,又由于存储的顺序是从...
用顺序链表,单链表,静态链表三种结构求解的约瑟夫josephus问题,完整的代码,可以直接编译,运行的,
C语言中的单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始。 链表中最简单的一种是单向链表,它包含两个域,一个信息域和一个指针域。这个链接指向列表中的...
一学期数据结构的代码作业,基本上涵盖了课本上面所有算法的C语言代码实现,压缩包无密码 2019/11/03 21:43 1,478 BF_KMP.cpp 2019/11/03 21:22 2,664 KMP.cpp 2019/10/24 18:49 3,956 LinkStack.cpp 2019/11/21 ...
1,单向链简洁。 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始;链表是使用指针进行构造的列表;...3,代码实现。 #include #include <math.h>
单循环链表.txt 单词倒转.txt 单链表.txt 单链表1.txt 单链表2.txt 单链表倒序.txt 单链表的处理全集.txt 双链表正排序.txt 反出字符.txt 叠代整除.txt 各种排序法.txt 哈夫曼算法.txt 哈慢树.txt ...
单循环链表.txt 单词倒转.txt 单链表.txt 单链表1.txt 单链表2.txt 单链表倒序.txt 单链表的处理全集.txt 双链表正排序.txt 反出字符.txt 叠代整除.txt 各种排序法.txt 哈夫曼算法.txt 哈慢树.txt ...
1、学习数据结构 用代码实现入门程序。 2、[数据结构(C语言版)].严蔚敏_吴伟民 版代码实现,可直接运行
计算机软件技术基础中的数据结构,包括,顺序表,链表,栈,对列,二叉树,排序,查找等思想的c语言实现。文档的内容则是对于各个程序内部算法结构的刻画以及数据输入要求。