以下为《数据结构实验报告-实验1 线性表(2)》的无排版文字预览,完整内容请下载
数据结构实验报告
实验名称:实验1—线性表
学生:梅某某
班级:人工201
学号:***53
日期:11.9
实验要求
1.1.实验目的:熟悉C语言得基本编程方法,掌握集成编译环境的调试方法;学习指针使用;掌握线性表的操作的实现方法;学习使用线性表解决实际问题的能力。
1.2.实验内容:
题目1:顺序表的基本功能:
1、插入:完成顺序表的插入功能
3、删除:删除原顺序表中指定元素
4、查找:查找顺序表中的元素并返回下标值
5、获取顺序表长度
6、更改:更改顺序表中指定的某一元素值
7、其他:可自行定义
编写函数测试线性表的正确性。
顺序表定义为:typedef struct Table {
int* head;
int length;
int size;
}table;
#include
#include
#define Size 5
typedef struct Table {
int * head;
int length;
int size;
}table;
table initTable() {
table t;
t.head = (int*)malloc(Size * sizeof(int));
if (!t.head)
{
printf("初始化失败");
exit(0);
}
t.length = 0;
t.size = Size;
return t;
}
table addTable(table t, int elem, int add)
{
int i;
if (add > t.length + 1 || add < 1) {
printf("插入位置有问题");
return t;
}
if (t.length >= t.size) {
t.head = (int *)realloc(t.head, (t.size + 1) * sizeof(int));
if (!t.head) {
printf("存储分配失败");
}
t.size += 1;
}
for (i = t.length - 1; i >= add - 1; i--) {
t.head[i + 1] = t.head[i];
}
t.head[add - 1] = elem;
t.length++;
return t;
}
table delTable(table t, int add) {
int i;
if (add > t.length || add < 1) {
printf("被删除元素的位置有误");
exit(0);
}
for (i = add; i < t.length; i++) {
t.head[i - 1] = t.head[i];
}
t.length--;
return t;
}
int selectTable(table t, int elem) {
int i;
for (i = 0; i < t.length; i+ 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 语句。
while (temp->next) {
temp = temp->next;
printf("%d ", temp->elem);
}
printf("\n");
}
int getLength(link* p) {
int i =1;
link*temp=p;
temp = temp->next;
while(temp!=NULL){
temp = temp->next;
i+=1;
}
return i;
}
结果分析:指针和链表一开始没理解透彻,但是明白之后就比较好做了,写函数的时候要区分链表与顺序表的区别
/
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。
以上为《数据结构实验报告-实验1 线性表(2)》的无排版文字预览,完整内容请下载
数据结构实验报告-实验1 线性表(2)由用户“xiao8lu”分享发布,转载请注明出处