資料結構 鍊錶的應用 學生資訊統計

2021-07-22 20:27:08 字數 2788 閱讀 9233

實驗目的:

1、掌握線性表的定義; 2

、掌握線性表的基本操作,如建立、查詢、插入和刪除等。

實驗內容:

定義乙個包含學生資訊(學號,姓名,成績)的的 順序表和煉表

,使其具有如下功能:

(1) 

根據指定學生個數,逐個輸入學生資訊;

(2) 

逐個顯示學生表中所有學生的相關資訊;

(3) 

根據姓名進行查詢,返回此學生的學號和成績;

(4) 

根據指定的位置可返回相應的學生資訊(學號,姓名,成績);

(5) 

給定乙個學生資訊,插入到表中指定的位置;

(6) 

刪除指定位置的學生記錄;

(7) 

統計表中學生個數。

參考資訊:

definition of structure student

typedef struct student;

definition of sequential list:

typedef  struct sqlist;

definition of linked list

typedef struct lnodelnode,*linklist;  

實驗要求:

(1) 

程式要新增適當的注釋,程式的書寫要採用

縮排格式 。

(2) 

程式要具在一定的 健壯性

,即當輸入資料非法時,程式也能適當地做出反應,如

插入刪除時指定的位置不對

等等。(3) 

程式要做到 介面友好

,在程式執行時使用者可以根據相應的提示資訊進行操作。

#include#include#include#include#define ok 1

#define error 0

typedef int status; //status 是函式返回值型別,其值是函式結果狀態**。

typedef struct lnode

lnode,*linklist;

void initlist(linklist &p) //鏈節初始化

void createlist(int n,linklist l,linklist p)//建立單鏈表

p->next=t->next;

t->next=p;

}void getelem(int i,linklist l,linklist &p)//查詢i位置的學生資訊

}status searchname(char *name,lnode l,linklist &p)//按名字查詢

return error;

}void listdelete(int i,linklist l)//刪除

p=l->next;

l->next=l->next->next;

free(p);

}int main()

break;

case 2: //輸出所有學生資訊

for(i=1;i<=len;i++)

putchar('\n');

break;

case 3: //按名字查詢

printf("請輸入需要查詢的新生的姓名。\n");

scanf("%s",res);

if(searchname(res,l,p))

printf("學號: %-10s,姓名: %-20s,成績: %-10.2lf\n\n", p->no, p->name, p->score);

else

printf("查詢失敗!沒有此學生資訊\n\n");

break;

case 4: //按位置查詢

printf("請輸入需要查詢資料的位置。\n");

scanf("%d",&m);

getelem(m,&l,p);

printf("學號: %-10s,姓名: %-20s,成績: %-10.2lf\n\n", p->no, p->name, p->score);

break;

case 5: //插入學生資訊

printf("請輸入乙個數,代表插入的位置:\n");

scanf("%d",&a);

initlist(p);

printf("請輸入所要插入學生的資訊:\n");

printf("學號:");

scanf("%s",p->no);

printf("姓名:");

scanf("%s",p->name);

printf("成績:");

scanf("%lf",&p->score);

createlist(a,&l,p);

len++;

break;

case 6: //刪除學生資訊

printf("請輸入所要刪除的學生位置:");

scanf("%d",&b);

listdelete(b,&l);

len--;

break;

case 7: //統計學生總人數

printf("學生 總人數為 %d\n",len);

break;

case 0:exit(0); //退出系統

} }return 0;

}

資料結構 鍊錶應用

鍊錶應用 pragma warning disable 4996 include includetypedef struct data typedef struct nodechainlisttype void chainlistall chainlisttype head 顯示所有節點 chain...

統計學生資訊(使用鍊錶完成)

描述 利用動態鍊錶記錄從標準輸入輸入的學生資訊 學號 姓名 性別 年齡 得分 位址 其中,學號長度不超過20,姓名長度不超過40,性別長度為1,位址長度不超過40 輸入 輸入包括若干行,每一行都是乙個學生的資訊,如 00630018 zhouyan m 20 10.0 28 460 輸入的最後以 e...

資料結構(2)鍊錶的應用

鍊錶是一種基礎資料結構,它是集合類的抽象資料結構型別中表示資料的合適型別。與數字結構不同之處在於,在鍊錶中插入元素和刪除元素都更加方便。定義 鍊錶表示的一列元素,由一系列的節點 node 構成,是一種遞迴資料結構。節點是乙個能夠包含任何型別資料的抽象實體,它所包含的指向節點的應用體現了他在鍊錶中的作...