|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1
实验名称:线性表的存储及运算
实验目的:通过实验能够学会线性表的两种存储方式。
实验内容:1.建立4个元素的顺序表list[] = {2, 3 , 4 , 5},实现顺序表建立及插入和删除的基本操作。2.建立一个包括头结点和3个结点{4,3,1}的单链表及插入、删除、查找等基本操作。
2
实验名称:二叉树的表示及运算
实验目的:通过实验能够学会二叉树的建立与遍历。
实验内容:建立一棵二叉树,并用递归或非递归的算法分别用先序、中序和后序遍历之。
3
实验名称:查找表的存储及运算
实验目的:通过实验能够学会对有序表的查找。
实验内容:建立一个记录有序表并实现其上的折半查找
4
实验名称:内部排序的方法。
实验目的:通过实验能够学会折半插入排序的方法。
实验内容:输入待排序记录。用顺序存储结构存储,并用折半插入排序对其排序.
这是数据结构与算法里面的基本实验,小鱼友不是很精通,特来论坛求助各位大佬,希望能得到实现上述实验的源码以及必要的注释,谢谢谢谢,时间比较紧,希望看到的鱼友、大佬能帮帮我,万分感谢。
本帖最后由 楦潇鸢笕 于 2017-6-16 23:36 编辑
1:单链表的存储与基本操作
#include<stdio.h>
#include<stdlib.h>
typedef int elemType;
typedef struct Node
{
elemType date;
struct Node *next;
}LNode,*LinkList;
//单链表的建立
LinkList CreteList(int n)
{
LinkList L,p;
L=(LinkList)malloc(sizeof(LNode));
L->next =NULL;
elemType e;
if(!L)
return 0;
while(n--)
{
scanf("%d",&e);
p=(LinkList)malloc(sizeof(LNode));
p->date =e;
p->next =L->next ;
L->next =p;
}
return L;
}
//指定位置的插入
int Listinsert(LinkList L,int i,elemType e)
{
if(i<1)
return 0;
LinkList P;
int j=0;
while(L&&j<=i-1)
{
L=L->next ;
j++;
}
P=(LinkList)malloc(sizeof(LNode));
P->date =e;
P->next =L->next ;
L->next =P;
return 0;
}
指定位置的删除,并以e返回其值
int Listdelete(LinkList L,int i,elemType *e)
{
if(i<1)
return 0;
LinkList q;
int j=0;
while(L->next &&j<=i-1)
{
L=L->next ;
j++;
}
if(!L->next ) return 0;
q=L->next ;
*e=q->date ;
L->next =q->next ;
return 1;
}
2:二叉树的存储及建立
#include<stdio.h>
#include<stdlib.h>
typedef char TElemType;
typedef struct BiTNode
{
TElemType date;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
//构造二叉树
BiTree CreateBiTree()
{
BiTree T;
int a;
scanf("%c",&a);
if(a=='^')
T=NULL;
else
{
T=(BiTNode *)malloc(sizeof(BiTNode));
if(!T) exit(-1);
T->date=a;
T->lchild=CreateBiTree();
T->rchild=CreateBiTree();
}
return T;
}
|
|