电脑基础软件 电脑基础软件没有了

大家好,关于电脑基础软件很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于电脑基础软件没有了的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

实验一:线性表/栈与队

一、实验目的

了解实现线性表/栈与队/数组所涉及到的数据结构。

二、实验要求

因受时间限制,从以下给出的4个实验内容中任选3个,分析并补齐给出的源程序,运行相应的程序,检验运行结果,以此巩固对相应部分的理论知识的理解。

1.复习线性表、栈与队列的定义,理解顺序存储、链式存储的方法及基本操作。

2.复习C语言中数组、指针及结构体的概念、定义方式。

3.上机前准备好全部源程序。

4.计算机中需要安装vc6.0或vs2010。

5.程序中所用结构体定义于datastru.h中。

三、实验内容

熟悉vs2010环境下建立程序源文件与调试程序的流程。

1、完成有序表(顺序表)中插入一元素并保证仍然有序。

……(补充程序)

voidmain()

{

SEQUENLISTL;

intnum,i,k,x;

L.last=0;//置顺序表为空,表长为0

printf(&34;);

/*输入顺序表元素,建立有序表,值从小到大*/

scanf(&34;,&num);

while(num!=-99){

………(补充程序)

L.last++;

scanf(&34;,&num);

}

printf(&34;,L.last);

printf(&34;);

scanf(&34;,&num);

printf(&34;);

for(i=0;i<L.last;i++)

printf(&34;,L.datas[i]);

printf(&34;);

k=L.last-1;

while((k>=0)&&(num<L.datas[k]))/*查找插入位置i*/

k–;

for(i=L.last-1;i>=k+1;i–)

L.datas[i+1]=L.datas[i];/*移动元素*/

L.datas[k+1]=num;/*新元素插入*/

L.last++;/*表长加1*/

printf(&34;);

for(i=0;i<L.last;i++)

printf(&34;,L.datas[i]);

printf(&34;);

}

2、完成链表的结点插入、删除操作,并显示操作前后的线性表中各元素的情况。

……(补充程序)

voidinser_order(DATATYPE2x,LINKLIST*head){

LINKLIST*pr,*pn,*pp;

pr=head;pn=head->next;

while(pn!=NULL&&pn->data<x)

{

……(补充程序)

}

pp=(LINKLIST*)malloc(sizeof(LINKLIST));

……(补充程序)

}

intcount_head(LINKLIST*head)/*输出单链表元素值并计数*/

{

inti=0;

LINKLIST*p;

p=head->next;

printf(&34;);

while(p!=NULL)

{

……(补充程序)

}

printf(&34;);

returni;

}

LINKLIST*creatlink_order_head(LINKLIST*head)/*建立带头结点的有序单链表*/

{

LINKLIST*t,*p,*q;

charch;

t=(LINKLIST*)malloc(sizeof(LINKLIST));//建立带头结点的空链表

t->next=NULL;

head=t;

printf(&为结束字符:&39;39;)

{

……(补充程序)

}

returnhead;

}

intmain()

{

LINKLIST*head=NULL;

intnum;

charch;

printf(&34;);

head=creatlink_order_head(head);

num=count_head(head);

printf(&34;,num);

fflush(stdin);

printf(&34;);

ch=getchar();

inser_order(ch,head);

printf(&34;);

num=count_head(head);

printf(&34;,num);

return1;

}

3、运用栈完成十进制数与八进制数的转换。

……(补充程序)

voidinitstack(SEQSTACK*s)/*顺序栈初始化*/

{

……(补充程序)

}

DATATYPE1gettop(SEQSTACK*s)/*返回栈顶元素*/

{

DATATYPE1x;

……(补充程序)

returnx;

}

intpush(SEQSTACK*s,DATATYPE1x)/*元素x入栈*/

{

if(s->top==MAXSIZE-1)

{

……(补充程序)

}

else

{

……(补充程序)

return1;

}

}

DATATYPE1pop(SEQSTACK*s)/*返回栈顶元素并删除栈顶元素*/

{

DATATYPE1x;

if(s->top==0)

{

printf(&34;);

x=0;

}

else

{

……(补充程序)

}

returnx;

}

intmain()

{

SEQSTACKstack,*s;

intn;

s=&stack;

initstack(s);

n=0;

printf(&34;);

scanf(&34;,&n);

push(s,&&34;\\n\\n对应的八进制数为:&39;39;)

printf(&34;,pop(s));

printf(&34;);

return1;

}

4、实现带头结点链队元素的删除、插入操作,并显示操作前后的队列情况。

……(补充程序)

DATATYPE1dellinkqueue(LINKQUEUE*q)/*删除队头元素并返回*/

{

……(补充程序)

if(q->front==q->rear)

{

printf(&34;);

v=0;

}

else

{

……(补充程序)

}

returnv;

}

voidenlinkqueue(LINKQUEUE*q,DATATYPE1x)/*元素x入队列*/

{

(q->rear)->next=(LINKQLIST*)malloc(sizeof(LINKQLIST));

……(补充程序)

}

voidinitlinkqueue(LINKQUEUE*q)/*链队列初始化*/

{

……(补充程序)

}

voidoutlinkqueue(LINKQUEUE*q)/*链队列元素依次显示*/

{

LINKQLIST*p;

p=q->front;

printf(&34;);

while(p!=q->rear)

{

……(补充程序)

}

printf(&34;);

}

intmain()

{

LINKQUEUElq,*p;

intj;

p=&lq;

initlinkqueue(p);

printf(&34;);

scanf(&34;,&j);

while(j!=0)/*输入0——退出*/

{

if(j%2==1)

enlinkqueue(p,j);/*输入奇数——入队列*/

else

j=dellinkqueue(p);/*输入偶数——删除队头元素*/

outlinkqueue(p);

printf(&34;);

scanf(&34;,&j);/*继续输入*/

}

return1;

}

四、注意事项

注意程序中用到的结构体的来源及表示方法、调用方式。读懂程序结构,先补齐缺失代码,再调试运行程序。

五、实验总结和体会

好了,关于电脑基础软件和电脑基础软件没有了的问题到这里结束啦,希望可以解决您的问题哈!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平