首页
/
每日頭條
/
科技
/
計算機軟件最基本知識
計算機軟件最基本知識
更新时间:2025-03-18 16:41:23

計算機軟件最基本知識?一、實驗目的了解實現線性表/棧與隊/數組所涉及到的數據結構,今天小編就來說說關于計算機軟件最基本知識?下面更多詳細答案一起來看看吧!

計算機軟件最基本知識(計算機軟件基礎)1

計算機軟件最基本知識

實驗一:線性表/棧與隊

一、實驗目的

了解實現線性表/棧與隊/數組所涉及到的數據結構。

二、實驗要求

因受時間限制,從以下給出的4個實驗内容中任選3個,分析并補齊給出的源程序,運行相應的程序,檢驗運行結果,以此鞏固對相應部分的理論知識的理解。

1.複習線性表、棧與隊列的定義,理解順序存儲、鍊式存儲的方法及基本操作。

2.複習C語言中數組、指針及結構體的概念、定義方式。

3.上機前準備好全部源程序。

4.計算機中需要安裝vc6.0或vs2010。

5.程序中所用結構體定義于datastru.h中。

三、實驗内容

熟悉vs2010環境下建立程序源文件與調試程序的流程。

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

……(補充程序)

void main( )

{

SEQUENLIST L;

int num,i,k,x;

L.last=0; //置順序表為空,表長為0

printf("請輸入順序表元素,元素為整型量,用空格分開,-99為結束标志:");

/*輸入順序表元素,建立有序表,值從小到大*/

scanf("%d",&num);

while (num !=-99) {

………(補充程序)

L.last ;

scanf("%d",&num);

}

printf("%d",L.last);

printf("輸入要插入的元素值(整型) : ");

scanf("%d",&num);

printf("\n插入前有序表元素列表 :");

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

printf("M",L.datas[i]);

printf("\n");

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("\n插入後有序表元素列表 :");

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

printf("M",L.datas[i]);

printf("\n");

}

2、完成鍊表的結點插入、删除操作,并顯示操作前後的線性表中各元素的情況。

……(補充程序)

void inser_order(DATATYPE2 x, LINKLIST *head){

LINKLIST *pr, *pn, *pp;

pr = head; pn = head->next;

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

{

……(補充程序)

}

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

……(補充程序)

}

int count_head(LINKLIST *head) /*輸出單鍊表元素值并計數*/

{

int i = 0;

LINKLIST *p;

p = head->next;

printf("輸出單鍊表元素值 : ");

while(p != NULL)

{

……(補充程序)

}

printf("\n");

return i;

}

LINKLIST *creatlink_order_head(LINKLIST *head) /*建立帶頭結點的有序單鍊表*/

{

LINKLIST *t, *p, *q;

char ch;

t = (LINKLIST *)malloc(sizeof(LINKLIST)); //建立帶頭結點的空鍊表

t->next = NULL;

head = t;

printf("單鍊表元素值為單個字符, 連續輸入,#為結束字符 : ");

while ((ch = getchar()) != '#')

{

……(補充程序)

}

return head;

}

int main()

{

LINKLIST *head = NULL;

int num;

char ch;

printf("\n 建立單鍊表\n\n");

head = creatlink_order_head(head);

num = count_head(head);

printf("單鍊表元素個數 = %d\n", num);

fflush(stdin);

printf("\n輸入插入元素值 : ");

ch = getchar();

inser_order(ch, head);

printf("\n 元素插入後\n\n");

num = count_head(head);

printf("插入後單鍊表元素個數 = %d\n", num);

return 1;

}

3、運用棧完成十進制數與八進制數的轉換。

……(補充程序)

void initstack(SEQSTACK *s) /*順序棧初始化*/

{

……(補充程序)

}

DATATYPE1 gettop(SEQSTACK *s) /*返回棧頂元素*/

{

DATATYPE1 x;

……(補充程序)

return x;

}

int push(SEQSTACK *s, DATATYPE1 x) /*元素x入棧*/

{

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

{

……(補充程序)

}

else

{

……(補充程序)

return 1;

}

}

DATATYPE1 pop(SEQSTACK *s) /*返回棧頂元素并删除棧頂元素*/

{

DATATYPE1 x;

if(s->top == 0)

{

printf("棧空\n");

x=0;

}

else

{

……(補充程序)

}

return x;

}

int main( )

{

SEQSTACK stack, *s;

int n;

s = &stack;

initstack(s);

n = 0;

printf("輸入一非負整數(十進制) :");

scanf("%d",&n);

push(s,'#');

while(n != 0)

{

push(s, n % 8); /* %為求餘數運算符, 餘數入棧*/

n = n / 8; /* /為求整數商運算符,商不為零,繼續運行*/

}

printf("\n\n對應的八進制數為 :");

while(gettop(s) != '#')

printf("%d",pop(s));

printf("\n");

return 1;

}

4、實現帶頭結點鍊隊元素的删除、插入操作,并顯示操作前後的隊列情況。

……(補充程序)

DATATYPE1 dellinkqueue(LINKQUEUE *q) /*删除隊頭元素并返回*/

{

……(補充程序)

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

{

printf("隊列空\n");

v = 0;

}

else

{

……(補充程序)

}

return v;

}

void enlinkqueue(LINKQUEUE *q, DATATYPE1 x) /*元素x 入隊列*/

{

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

……(補充程序)

}

void initlinkqueue(LINKQUEUE *q) /*鍊隊列初始化*/

{

……(補充程序)

}

void outlinkqueue(LINKQUEUE *q) /*鍊隊列元素依次顯示*/

{

LINKQLIST *p;

p = q->front;

printf("隊列元素顯示 : ");

while(p != q->rear)

{

……(補充程序)

}

printf("\n");

}

int main()

{

LINKQUEUE lq, *p;

int j;

p = &lq;

initlinkqueue(p);

printf("輸入一整數(奇數——入隊列、偶數——删除隊頭元素、0——退出) : ");

scanf("%d", &j);

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

{

if(j % 2 == 1)

enlinkqueue(p,j); /*輸入奇數——入隊列*/

else

j = dellinkqueue(p); /*輸入偶數——删除隊頭元素*/

outlinkqueue(p);

printf("\n輸入一整數(奇數——入隊列、偶數——删除隊頭元素、0——退出) : ");

scanf("%d", &j); /*繼續輸入*/

}

return 1;

}

四、注意事項

注意程序中用到的結構體的來源及表示方法、調用方式。讀懂程序結構,先補齊缺失代碼,再調試運行程序。

五、實驗總結和體會

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
筆記本鍵盤進水了怎麼辦?筆記本鍵盤進水失靈
筆記本鍵盤進水了怎麼辦?筆記本鍵盤進水失靈
筆記本鍵盤不小心進水的話,是很容易造成整台電腦的失靈的。不過,隻要挽救及時,還是有補救的機會的。筆記本鍵盤進水了怎麼辦?筆記本鍵盤進水失靈筆記本鍵盤進水了怎麼辦筆記本鍵盤不小心進水的話,是很容易造成整台電腦的失靈的。不過,隻要挽救及時,還是有補救的機會的。下面就為大家介紹一下。立刻切斷電源,強行關閉...
2025-03-18
電暖氣有輻射嗎
電暖氣有輻射嗎
輻射這個詞,應該說大家都不會很陌生吧,很多家用電器其實也都是會有很大的輻射的,而輻射對人體的危害也是很大的,如果長期生活在有輻射,無論是對于人的身心,或者說皮膚都是會産生很大的危害的,因此日常生活中在使用電器的時候要盡量選擇那些不有輻射的電器。那麼電暖氣這種做為應用最廣泛的電器是否有輻射呢?其中的輻...
2025-03-18
選購及使用微型液晶彩電的竅門
選購及使用微型液晶彩電的竅門
微型液晶彩色電視機選購方法近年成國内城市出現了大屏幕彩電消費熱。25--33英寸彩電銷售明顯增加,成為城市用戶追求的新熱點。另一方面,城市消費又開始了微型彩電熱。微型液晶彩電的出現,引起了不少消費者的關注和追求,國内商業銷售大增。微型液晶彩電體積隻有手掌大,但“麻雀雖小,五髒俱全&rdq...
2025-03-18
跑步機什麼牌子好?跑步機多少錢?
跑步機什麼牌子好?跑步機多少錢?
雖然跑步機的尺寸大小滿足了不同的家庭,但家用跑步機品牌種類繁多,讓人眼花缭亂,讓消費者難以選擇。跑步機什麼牌子好?跑步機多少錢?跑步機什麼牌子好首先根據自己的經濟能力來選擇合适的價格範圍,其次不要太過糾結國産和進口之分。隻要口碑好、質量可靠的跑步機,我們均可選擇。那麼,跑步機什麼牌子好呢?億健跑步機...
2025-03-18
紫外線消毒器
紫外線消毒器
紫外線消毒器是一種主要用于殺菌消毒的機器,它殺毒滅菌效果非常的好,而且被廣泛的應用的很多方面,尤其是在水處理的過程中發揮了它極大的價值,減少了由于化學成分給水消毒過程中的藥劑過量對人體的傷害,也沒有腥氣的味道,為我們的安全用水做出了很大的貢獻。用紫外線消毒器消毒滅菌還有很多的好處,所以很多的場合都能...
2025-03-18
Copyright 2023-2025 - www.tftnews.com All Rights Reserved