前面兩次分別講了線性表的兩種結構,接下來要來運用到實際生活當中。接下來的例子用的是鍊錶,因為順序結構的線性表比較好理解,可在看過此文章自行實現,而且絕大多數都是使用鍊錶來組織結構。所以就用鍊錶來講解。
首先我們要先想好乙個學生應有的資訊:姓名、年齡、性別、學號、出生日期等一些基本資訊。然後建立乙個學生結構,其次我們還要建立出生日期的結構:年月日。這些結構是屬於資料域的,然後要建立乙個節點結構。
日期結構:
struct birthday
;
學生結構:
struct student
;
節點結構:
struct node
;
結構建立好了之後,接下來就是初始化鍊錶了。
struct node *init()
stu->pnext = null;
return stu;
}
檢視學生個數的方法:
int lenth(struct node *stu)
return i;
}
遍歷輸出學生資訊的方法:
void display(struct node *stu)
}
新增學生資訊的方法:
void add(struct node *stu)
printf("請輸入學生資訊:\n");
printf("請輸入姓名:");
scanf("%s",new->date.name);
printf("請輸入年齡:");
scanf("%d",&new->date.age);
printf("請輸入性別:");
scanf("%s",new->date.***);
printf("請輸入學號:");
scanf("%d",&new->date.number);
printf("請輸入出生日期(格式:1970.1.1):");
scanf("%d.%d.%d",&new->date.birthday.year,&new->date.birthday.month,&new->date.birthday.day);
new->pnext = temp->pnext;
temp->pnext = new;
temp = new;
count++; //全域性變數,記錄學生個數
}
刪除學生資訊的方法:
判空的方法:
int empty(struct node *stu)
按姓名刪除:
int del(struct node *stu,char *delstu)
else
else
}return 0;
}}
若按學號刪除只需將比較的資料改為學號即可。
查詢學生資訊的方法其實和刪除學生資訊的方法類似,只需將刪除的方法當中查詢到的學生資訊輸出,而不是刪除即可。
以上就是乙個簡單的學生資訊管理系統,其中存在許多bug,如:輸入資訊未經判斷。這個例子只是用於學習鍊錶的應用,要想真正做成學生資訊管理系統還需要完善,有興趣的可自行實現。
學生資訊管理表
建立表資料庫命名 create database if not exists xueshengbiao default charset utf8 use xueshengbiao 資料庫結構表 create table xuesheng id int unsigned key auto increm...
順序表 學生資訊管理
typedef int status typedef struct student typedef student elemtype typedef struct sqlist 分配記憶體,此時長度設為0。status initlist sqlist l 初始化 int findbystuid sq...
線性表建立學生資訊表
在實驗課上,要求操作線性表的基本操作及其應用,這是第一次實驗,用到得是順序表結構。課程名 資料結構 實驗目的 1 掌握線性表的定義 2 掌握線性表的基本操作,如建立 查詢 插入和刪除等。實驗要求 定義乙個包含學生資訊 學號,姓名,成績 的順序表,使其具有如下功能 1 根據指定學生個數,逐個輸入學生資...