数据结构上机实验题(刚开始学一头雾水,望C语言高手帮忙)

实验1:顺序表的建立及运算
要求:
1、建立一个顺序表,输入n个元素并输出;
2、查找线性表中的最大元素并输出;
3、在线性表的第i个元素前插入一个正整数x;
4、删除线性表中的第j个元素;
5、将线性表中的元素按升序排列;
6、将线性表中的元素就地逆序(只允许用一个暂存单元);

实验2:单链表的创建及操作
要求:
1、创建一个带头结点的单链表(头指针为head),且遍历此链表(输出链表中各结点的值);
2、查找单链表中的第i个结点,并输出结点元素的值;
3、在单链表中的第i个结点前插入一个结点值为e的正整数(从外部输入);
4、删除单链表中的第j个结点;
5、将单链表中的各结点就地逆序(不允许另建一个链表);
不用给出全部解答,随便几个就好,初学,感觉很难掌握。。

数组就是顺序线性表。
结构体,指针,构成链式线性表。
明白了吧。追问

但是数据结构里有一些新增的东西,刚开始学还不太明白。数组学了,但结构体和指针没学,所以现在理解起来有点难度。

追答

晕,你们不是先学c语言的么?

追问

嗯,学校赶课,指针和结构体都没学,现在真的是晕死,又开了数据结构,老师就认为我们都会啊,上来就两个实验啊!!哎~~

追答

只给出思路好了

1、建立一个顺序表,输入n个元素并输出;
input 和sprintf完成
2、查找线性表中的最大元素并输出;
冒泡排序
3、在线性表的第i个元素前插入一个正整数x;
令a[i-1]=插入数据,后面的向后移动
4、删除线性表中的第j个元素;
a[j-1]=a[j],后面往前面移动
5、将线性表中的元素按升序排列;
冒泡排序
6、将线性表中的元素就地逆序(只允许用一个暂存单元);
for(i=n,j=0;i>n/2;i--,j++){
t=a[i-1] a[i-1]=a[j] a[j]=a[n-1]
}
实验2:单链表的创建及操作
要求:
1、创建一个带头结点的单链表(头指针为head),且遍历此链表(输出链表中各结点的值);
struct a{int t;a* next;} st
prep=head
for(i=0;inext=ct;
prep=ct;
}
然后输出

2、查找单链表中的第i个结点,并输出结点元素的值;
p=head
for(j=0;jt);
3、在单链表中的第i个结点前插入一个结点值为e的正整数(从外部输入);
根据2找到i个节点,p=node(i),s=new st; s->next=p->next p->next=s
4、删除单链表中的第j个结点;
自己完成,和数组一个原理
5、将单链表中的各结点就地逆序(不允许另建一个链表);

温馨提示:答案为网友推荐,仅供参考
相似回答