数据结构实验(用c语言写) 栈的基本操作
//顺序栈
#include
#include
#include
#define
STACK_INIT_SIZE
100;
#define
STACKINCREMENT
10;
typedef
struct
{
int
*base;
int
*top;
int
stacksize;
}SqStack;
typedef
int
ElemType;
int
InitStack(SqStack
S)
//为栈S分配存储空间,并置S为空栈
{
int
size
=
STACK_INIT_SIZE;
S.base=(int
*)malloc(size*sizeof(ElemType));
if(!S.base)
return
0;
S.top=S.base;
//置栈S为空栈
S.stacksize=STACK_INIT_SIZE;
return
1;
}
int
GetTop(SqStack
S,int
e)
//若栈不空,则用e返回S的栈顶元素
{
if(S.top==S.base)
return
0;
e=*(S.top-1);
return
1;
}
int
Push(SqStack
S,
int
e)
{
if(S.top-S.base=S.stacksize)
{
int
stackinvrement
=
STACKINCREMENT;
S.base=(ElemType
*)
realloc(S.base,(S.stacksize+stackinvrement)*sizeof(ElemType));
if(!S.base)
return
0;
S.stacksize+=STACKINCREMENT;
}
*S.top++=e;
return
1;
}
int
Pop(SqStack
S,int
e)
{
if(S.top==S.base)
return
0;
e=*--S.top;
return
1;
}
void
OutputStack(SqStack
S)
{int
*q;
q=S.top-1;
for(int
i=0;i
#include
typedef
struct
SNode
{
int
data;
struct
SNode
*next;
}SNode,*linkStack;
linkStack
top;
linkStack
PushStack(linkStack
top,int
x)
//入栈
{
linkStack
s;
s=(linkStack)malloc(sizeof(SNode));
s-data=x;
s-next=top;
top=s;
return
top;
}
linkStack
PopStack(linkStack
top)
//退栈
{
linkStack
p;
if(top!=NULL)
{
p=top;
top=top-next;
free(p);
printf("退栈已完成n");
return
top;
}
else
printf("栈是空的,无法退栈!n");
return
0;
}
int
GetStackTop(linkStack
top)
//取栈顶元素
{
return
top-data;
}
bool
IsEmpty()//bool取值false和true,是0和1的区别,bool只有一个字节,BOOL为int型,bool为布尔型
{
return
top==NULL
?
true:false;
}
void
Print()
{
SNode
*p;
p=top;
if(IsEmpty())
{
printf("The
stack
is
empty!n");
return;
}
while(p)
{
printf("%d
",
p-data);
p=p-next;
}
printf("n");
}
void
main()
{
int
x,a,b;
char
m;
do
{
printf("n");
printf("###############链栈的基本操作##################n");
printf("××××××××1.置空栈××××××××××n");
printf("××××××××2.进栈×××××××××××n");
printf("××××××××3.退栈×××××××××××n");
printf("××××××××4.取栈顶元素××××××××n");
printf("××××××××5.退出程序×××××××××n");
printf("##############################################n");
printf("n请选择一个字符:");
scanf("%c",m);
switch(m){
case
'1':
top=NULL;
printf("n栈已置空!");
break;
case
'2':
printf("n请输入要进栈的元素个数是:");
scanf("%d",a);
printf("n请输入要进栈的%d个元素:",a);
for(b=0;b
评论
加载更多
数据结构实验(C语言): 顺序表实验
//线性表函数操作
#include stdio.h
#include string.h
#define MaxSize 30
#define Error 0
#define True 1
typedef char ElemType;
typedef struct
{
ElemType elem[MaxSize];
int length;
}SqList;
void InitList(SqList * L)
{
L = (SqList *)malloc(sizeof(SqList));
L - length = 0;
}
void DestroyList( SqList *L )
{
free(L);
}
int ListEmpty( SqList *L )
{
return( L - length == 0);
}
int ListLength( SqList *L )
{
return( L - length);
}
void DispList( SqList *L )
{
int i;
if( ListEmpty(L))
return;
for( i = 0; i L - length; i++ )
printf("%c", L - elem[i]);
printf("n");
}
int GetElem( SqList *L, int i, ElemType e)
{
if( i 1 || i L - elem[i])
return Error;
e = L - elem[i - 1];
return True;
}
int LocateElem( SqList *L, ElemType e)
{
int i = 0;
while( i L - length L - elem[i] != e)
i++;
if(i = L - length)
return Error;
else
return i+1;
}
int ListInsert( SqList * L, int i, ElemType e)
{
int j;
if( i 1 || i L - length + 1)
return 0;
i--;
for( j = L - length; j i; j--)
L - elem[j] = L - elem[j - 1];
L - elem[i] = e;
L - length++;
return True;
}
int ListDelete( SqList * L, int i, ElemType e)
{
int j;
if( i 1 || i L - length)
return Error;
i--;
e = L - elem[i];
for(j = i; j L - length - i; j++)
L - elem[j] = L - elem[j + 1];
L - length--;
return True;
}
void main()
{
SqList *L;
ElemType e;
printf("(1)初始化顺序表Ln");
InitList(L);
printf("(2)依次采用尾插法插入a,b,c,d,e元素n");
ListInsert(L, 1, 'a');
ListInsert(L, 2, 'b');
ListInsert(L, 3, 'c');
ListInsert(L, 4, 'd');
ListInsert(L, 5, 'e');
printf("(3)输出顺序表L:");
DispList(L);
printf("(4)顺序表L长度 = %dn", ListLength(L));
printf("(5)顺序表L为%sn", (ListEmpty(L) ?"空" :"非空"));
GetElem(L, 3, e);
printf("(6)顺序表L的第3个元素 = %cn", e);
printf("(7)元素a的位置 = %dn", LocateElem(L,'a'));
printf("(8)在第4个元素位置上插入f元素n");
ListInsert(L, 4, 'f');
printf("(9)输出新的顺序表L:");
DispList(L);
printf("(10)删除L的第3个元素n");
ListDelete(L, 3, e);
printf("(11)输出新的顺序表L:");
DispList(L);
printf("(12)释放顺序表Ln");
DestroyList(L);
}
数据结构实验成功的关键是什么
大伙儿以为,做实验最重要的是什么吗?大伙儿能够试着秀一下,世人的聪慧是惊人的,咱们总结的体会可能给他人带来很多启发哪,1.我以为做实验是需要运气的,若是选了好做的课题,做起来就很顺利,若是选的课题不行,你就做吧,可能研究生三年,都做不出什么东西,2.然后是细心,相同的实验有的人能做出结果,有些人就做不出,这一点必需承认。3.分析问题的能力,相同的实验结果不同的人分析的是不同的,有些人能发觉很有价值的东西,而有些人,做出结果,却可不能分析。大伙儿尽力想,这些问题对实验成功是很关键的,给大伙儿一些启发吧做好记录,实验进程中要随时记录每一步骤,不要等事后再回忆,好记性不如烂笔头啊,不然失败了也不明白该到哪去找缘故。这也是关键之一吧1,实验设计,要认真设计可行的实验方案,只有可行的实验方案才能保证成功.2,目的明确,明确自己的实验要达到什么样的成效,才会明白要怎么做.3,细心+认真+试探+耐心,这几点是必不可少的,即便失败了,也要从中总结体会,改良实验方案.而且要专门耐心,不能敷衍了事!4,看文献,多看文献,看N多的文献,设计实验前看文献,实验中看文献,学学他人都怎么做的,解决自己所碰到的困难.5,笔记,看文献,做实验相信教师都有要求做好笔记,笔记可是财富阿!细心+标准的操作+丰硕的知识+人品!好的课题好的教师,最重要的是自己要有主动性!好的idea+坚持+心细+烂笔头!最重要的是适应!通过量次的体会积存,我觉察,最最最
重要的仍是调研要充分,若是不是的话会浪费很多时刻,连同组的列位伙伴都连累的,最怕的确实是共用仪器的情形。。。打算用心好试剂解决问题能力不管课题如何,我感觉实验开始前的文献调查、实验打算和技术线路才是最要紧的第二是擅长分析和发觉问题,并养成认真记录实验进程的适应那个问题问的有水平,我一直想问在实验中大伙儿是怎么克服困难的,毕竟弄生物科学的人得出数据才有可写可交的东西,可是往往却被实验中的一步两步所困无法实现整体的冲破。有些可能是技术问题,真的需要考验自己的技术,做到熟练还要明白每一部到什么样的程度才是合格的操作,因为生物实验必需要到最后才明白结果如何,中间的进程能操纵的尽可能要操纵;另外像一些实验室的新技术,做之前要充分调研,把握好关键的一些步骤,因为文献上的方式都可不能详细到每一个辅助方案,而往往一个辅助方案的失败就致使整个结果都显现误差。我此刻也正困惑,尽管明白这些道理了,还要继续自己的一个实验,前一段时刻做了结果不行,最近集中查查文献,感觉自己还真是在一些细节上显现问题了,因此打算从头来。祝大伙儿好运啊。想要实验成功,阻碍因素相当多,关键的有几点。***要明确的是,有个良好的心态,好的毅力,不被临时的挫折打倒,屡败屡战,可是要擅长总结失败的教训,不断完善实验细节。因为实验是一个长期的进程,是一个复杂的进程,
一个实验设计下是由不同的实验部份实验时期组成,一步走错,通盘皆输。因此,在有好的实验设计的前提下,要对整个实验的概况有个整体的了解,这是最难的,因为各个学校或研究因此及实验室的硬件条件和导师和课题组的综合素养都不一样,若是你足够幸运,进去就有一个好的课题,有好的导师指导的话,大体就成功了一半,剩下的确实是时刻问题罢了,只需要循序渐进的依如实验安排一步一步往下进行就好。固然在实验的进程中,由于体会和操作能力的不同,在进行单个实验的时候,没有人会一次就成功,一次成功的也只是运气,重复性都可不能太好,往往是熟能生巧。建议***次做一个新的小实验的时候,***是一气呵成,不要断开,做过三次以后,差不多就能够摸到那个实验的关键步骤,在关键的地址多加注意,其他步骤就能够够略微变通变通,时刻上也能够更合理的安排。第二,在通观实验整体的基础上,合理的实验打算,并有效的治理实验效率,对实验的重点和难点了如指掌,各个击破。比如,在预备实验材料的时候,就进行***步实验理论的熟悉和预实验,在实验材料预备好的时候就能够够进行***步,在***步正式实验的时候,就进行下一步实验的理论学习和预实验。***步实验完成以后就能够够直接进行下一步,如此就能够够保证明验打算的顺利实施,可不能延误,提高实验的效率。另外,若是与导师接触的机遇有限的话,学习的对象可能多是师兄师姐,因此要多问,多试探。他们的一句话,可能会省咱们好多试探的时刻。问问题呢,也要擅长问,***确信自己要有个可能的熟悉,不要什么鸡毛蒜皮的都去问,他们自己也有自己的实验,会被烦掉的。固然问的时候,也要有打破沙锅问到底的精神,因为,他们以前做过,时刻久了,一下被问到,有时候也会忘记一些关键的东西,因此***在他们有时刻的时候问,多问一些细节,多拖一下时刻,他们会想到比较多,说的比较完整,对自己的帮忙也会更大。可是,必然要有充分的判定能力,每一个人的实验材料不同,实验的要求也不同,可能有时候两个人就有两种说法,那个时候就需要自己去判定,因此对他们的建议也不能通盘吸收,这需要必然的功力,总之,自己必然要有主见,要对自己所做的实验负责。
还有确实是,有个好的实验气氛也很重要,一个好的团队会提高每一个人的实验效率,要注意帮忙他人,团结合作。一粒老鼠屎会坏
一锅汤,一个人实验效率或实验适应不行,不仅会占用实验资源,阻碍他人实验效率,而且会给低年级的学生树立不行的表率,致使整个实验团队效率的低下和实验气氛的破坏,这种阻碍是相当恶劣的,必然得杜绝,因此,尽力的帮忙他人,营造好的实验气氛。预备,包括理论的预备和实验材料的预备超级重要;接下来确实是严谨认真的操作,若是碰到问题应该认真查找缘故。细心+耐心+多交流+多查文献和论坛我感觉***是对实验要有明确的目的想要达到什么结果第二要依照目的去看文献这是必不可少的一环。尽可能的多搜集文献。制定实验的步骤。在实验之前必然要自己把实验过一遍想清楚实验中可能碰到的问题。然后做实验,在实验的进程中的现象和问题记录下来那个很重要。对实验结果的进行分析为下次的实验提供体会。实验成功或失败也要对实验进行分析如此才能够幸免下一次的失看文献,加细致的打算,还有前人的指导,不要一味的蛮做。擅长总结与改良我以为实验成功的***步在于态度,所谓“态度决定成败”,不那么绝对我以为也有四分之一吧!态度不端正也不能坚持到最后呀。然后靠自己的实验方向选择和理论积存,不可能不科学的运气再好成功的可能性也小之又小。还有靠自己的天赋及尽力,有些人拿手术刀手颤栗是天生的,有些人天生没有“手感”,再加上平常不尽力,全然不可能成功。最后靠的是运气,一遍两遍不行每次都是小失误致使失败,这确实是运气太差了做实验之前要有周密的打算,这些打算是来自多看文献,多和教师或师兄师姐交流,把相关的对如实验一路进行,依如实验打算预备好所用的一切试剂和相关器材,做完实验要认真分析,多请教~~~动手之前用头脑占70%,行动30%
综合各个因素,实验室的硬件对实验的成功起着不可轻忽的作用,一样的实验一样的人,在不同的实验室可能做出不同的结果我感觉***是要有热情,有决心,不然一切都是白搭。第二是要事前尽可能熟悉你的实验内容和步骤,不能想一步做一步,事前做些定性或半定量的预测性实验也是很重要的,不然方向就会偏。再有确实是技术必然要过关,手上没感觉是做不行任何实验的。最后确实是记录,记录真的很重要,要记下尽可能多的信息以便于实验分析,分析和总结是实验最关键的,不然做了白做。***,细心是必需的啦。然后确实是要依据实验的目的来设计一个可操作的方案了,设计时要参考文献,多多益善,只是要认真明白得他人的思路和什么缘故这么做。最后确实是要做好每一次的实验记录以便以后参考和查错之类的。磨刀不误砍柴工实验之前要有一个清楚的思路,明白自己在做什么,想要的结果不能够盲目的蛮必然要对自己的课题感爱好,不然就不要做,感爱好的话,你在做的进程中能够学到很多东西,专门是当咱们碰到困难的时候,能够多上网查资料,找到解决的方法,把每一个困难都克服了,最后就会成功!要不断的试探,笔记确信是少不了的,要擅长边做边发觉问题,还要有标准的实验操作,做实验不能仅仅求速度,还要稳,宁可慢一点,也不要因为快而犯错,另外确实是要多问,细心是不管做什么都必需的要很精心的设计实验,设好对照包括正负对照,然后实验操作要迅速可是要细心
¥
5.9
百度文库VIP限时优惠现在开通,立享6亿+VIP内容
立即获取
实验成功的关键是什么
大伙儿以为,做实验最重要的是什么吗?大伙儿能够试着秀一下,世人的聪慧是惊人的,咱们总结的体会可能给他人带来很多启发哪,
1.我以为做实验是需要运气的,若是选了好做的课题,做起来就很顺利,若是选的课题不行,你就做吧,可能研究生三年,都做不出什么东西,
2.然后是细心,相同的实验有的人能做出结果,有些人就做不出,这一点必需承认。
3.分析问题的能力,相同的实验结果不同的人分析的是不同的,有些人能发觉很有价值的东西,而有些人,做出结果,却可不能分析。
第 1 页
大伙儿尽力想,这些问题对实验成功是很关键的,给大伙儿一些启发吧
做好记录,实验进程中要随时记录每一步骤,不要等事后再回忆,好记性不如烂笔头啊,不然失败了也不明白该到哪去找缘故。这也是关键之一吧
1,实验设计,要认真设计可行的实验方案,只有可行的实验方案才能保证成功.
2,目的明确,明确自己的实验要达到什么样的成效,才会明白要怎么做.
3,细心+认真+试探+耐心,这几点是必不可少的,即便失败了,也要从中总结体会,改良实验方案.而且要专门耐心,不能敷衍了事!
数据结构实验的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于数据结构实验报告二叉树、数据结构实验的信息别忘了在本站进行查找喔。