鍊錶a,每個節點存放乙個新的鍊錶b1,b2,b3,b4,b5的頭結點。 場景: 乙個年級,相當鍊錶a 該年級5個班,每個班5個人,相當於鍊錶b1--b5 做乙個學生成績管理系統 學生成績有語文 數學 英語 功能: 錄入成績 找三科總分的最高分 最低分 算出平均分
鍊錶是一種常見的基礎資料結構,結構體指標在這裡得到了充分的利用。
鍊錶可以動態的進行儲存分配,也就是說,鍊錶是乙個功能極為強大的陣列,他可以在節點中定義多種資料型別,還可以根據需要隨意增添,刪除,插入節點。
鍊錶都有乙個頭指標,一般以head來表示,存放的是乙個位址。鍊錶中的節點分為兩類,頭結點和一般節點,頭結點是沒有資料域的。鍊錶中每個節點都分為兩部分,乙個資料域,乙個是指標域。
說到這裡你應該就明白了,鍊錶就如同車鏈子一樣,head指向第乙個元素:第乙個元素又指向第二個元素;……,直到最後乙個元素,該元素不再指向其它元素,它稱為「表尾」,它的位址部分放乙個「null」(表示「空位址」),鍊錶到此結束。
作為有強大功能的鍊錶,對他的操作當然有許多,比如:鍊錶的建立,修改,刪除,插入,輸出,排序,反序,清空鍊錶的元素,求鍊錶的長度等等。
c語言巢狀鍊錶實現學生成績管理系統:熟悉鍊錶的建立,結構體指標的使用。
實現思路:建立學生鍊錶->建立班級鍊錶
其中學生鍊錶的結點的資料域存放學生的資訊;
班級鍊錶的結點的資料域為指向學生煉表頭結點的指標;
利用這樣的巢狀鍊錶實現多個班級,以及每個班級多個學生的成績管理。
**如下(示例):
#include
#include
**如下(示例):
struct student //宣告學生鍊錶的節點
;
**如下(示例):
struct class//宣告班級鍊錶的節點
;
**如下(示例):
struct student*
createstudentnode
(struct student*head,
int num)
//生成乙個新的學生節點並且利用尾插法插入鍊錶中
else
//將指標p移到鍊錶尾
} p->next=node;
return head;
}
**如下(示例):
struct student*
init_studentlink()
//生成學生鍊錶
return p;
}
**如下(示例):
struct class*
createclassnode
(struct class* head,
int num)
//生成乙個新的班級節點並且利用尾插法插入鍊錶中
else
}return0;
}
**如下(示例):
void
init_class
(struct class* head)
//生成班級鍊錶
}
**如下(示例):
void
printf_node
(struct class *head)
//列印節點資訊
if(p->sum}printf
("\n");
q=q->next;
j=0;
}printf
("總分最高為:%d\n"
,max)
;printf
("總分最低為:%d\n"
,min)
;}
**如下(示例):
int
main()
c 實現學生成績管理
include include include include include struct score void main printf all the score bellow n printf id t語文 t英語 t數學 n for i 0 i int max 0 int m 0 for i...
C 鍊錶實現學生成績管理(增刪改查)
簡介 並未封裝成類,功能也僅實現了增量改查。資料為txt,格式 學號 long 姓名 string 總分 int 學生資訊結構體 struct student 節點結構體 struct node 讀取data.txt中獲取資料 node readinformation node root q nex...
C語言鍊錶實現學生管理系統
include include include include include include using namespace std typedef struct ndoestudent struct student 建立學生資訊 student insert student head r nex...