/*順序表*/
#include
#include
#include
#include
#define ok 1
#define error 0
#define overflow -1
using namespace std;
#define maxsize 100
typedef struct
student;
typedef struct
sqlist;
void menu()
void input(student &e)
void output(student e)
int listinsert(sqlist &l,int i,student e)
int listdelete(sqlist &l,int i)
switch(m)
printf("\n\n");
break;
case 5:
printf("請輸入要插入的位置:");
scanf("%d",&pos);
printf("請輸入學號:");
scanf("%s",e.num);
printf("請輸入姓名:");
scanf("%s",e.name);
printf("請輸入成績:");
scanf("%d",&e.score);
if(listinsert(l,pos,e))
printf("插入成功!");
else
printf("插入失敗!\n");
printf("\n\n");
break;
case 6:
printf("請輸入要刪除的學生資訊的位置: ");
scanf("%d",&pos);
if(listdelete(l,pos))
printf("刪除成功!");
else
printf("刪除失敗!\n");
printf("\n\n");
break;
case 7:
printf("學生總數: %d\n",l.length);
break;}}
return 0;
/********實驗一(鍊錶)***********/
#include
#include
#include
#include
#define len sizeof(lnode)
using namespace std;
typedef struct
student;
typedef struct lnode
lnode,*linklist;
/*void initlist(linklist &l)//鍊錶初始化
*/void creat(linklist &l,int n)//後插法,建立鍊錶並輸入學生資訊
}void output(linklist &l)//輸出所有學生資訊
dowhile(p!=null);
printf ("顯示完畢!\n");
}void namesearch(linklist l,char str)//按姓名查詢學生資訊
while(p && (strcmp(p->data.name,str)))
p=p->next;
if(!p)
printf("查詢成功!該學生資訊為:\n");
e=p->data;
printf("學號:%s\t姓名:%s\t成績:%d\n",e.num,e.name,e.score);
}int getelem(linklist l,int i,student &e)//查詢指定位置學生資訊
if(!p||j>i) return 0; //i值不合法i>n或i<=0
e=p->data;
return 1;
}int insertlist(linklist &l,int i,student e)//在i出插入新的學生資訊
if(!p||j>i-1) return 0; //i值不合法i>n+1或i<1
s=(lnode *)malloc(sizeof(lnode));//生成新節點*s
s->data=e; //*s的資料域置為e
s->next=p->next; //*s的指標域指向節點ai
p->next=s; //將節點*p的指標域指向節點*s
return 1;
}int deletelist(linklist &l,int i)//刪除i處學生資訊
if(!p->next||j>i-1) return 0;//i>n 或 i<1 時,刪除位置不合理
q=p->next; //p臨時儲存被刪除節點
p->next=q->next; //改變刪除節點前驅節點的指標域
free(q); //釋放刪除節點的空間
return 1;
}int length(linklist l)//鍊錶總長度(學生總人數)
return len;
}void menu()
int main()
else
printf("查詢失敗!\n");
printf("\n");
break;
case 5:
printf("請輸入要插入的位置:");
scanf("%d",&pos);
printf("請輸入學號:");
scanf("%s",e.num);
printf("請輸入姓名:");
scanf("%s",e.name);
printf("請輸入成績:");
scanf("%d",&e.score);
if(insertlist(l,pos,e))
printf("插入完成!\n\n");
else
printf("插入失敗!\n\n");
break;
case 6:
printf("請輸入要刪除的學生資訊的位置: ");
scanf("%d",&pos);
if(deletelist(l,pos))
printf("刪除成功!\n");
else
printf("刪除失敗!\n");
break;
case 7:
l=length(l);
printf("學生總數: %d\n",l);
break;}}
}return 0;
}
實驗11 2 1 建立學生資訊鍊錶 20分
本題要求實現乙個將輸入的學生成績組織成單向鍊錶的簡單函式。函式介面定義 void input 該函式利用scanf從輸入中獲取學生的資訊,並將其組織成單向鍊錶。鍊錶節點結構定義如下 struct stud node 單向鍊錶的頭尾指標儲存在全域性變數head和tail中。輸入為若干個學生的資訊 學號...
實驗11 2 1 建立學生資訊鍊錶 (20 分)
本題要求實現乙個將輸入的學生成績組織成單向鍊錶的簡單函式。函式介面定義 void input 該函式利用scanf從輸入中獲取學生的資訊,並將其組織成單向鍊錶。鍊錶節點結構定義如下 struct stud node 單向鍊錶的頭尾指標儲存在全域性變數head和tail中。輸入為若干個學生的資訊 學號...
實驗11 2 1 建立學生資訊鍊錶 20 分
本題要求實現乙個將輸入的學生成績組織成單向鍊錶的簡單函式。函式介面定義 void input 該函式利用scanf從輸入中獲取學生的資訊,並將其組織成單向鍊錶。鍊錶節點結構定義如下 struct stud node 單向鍊錶的頭尾指標儲存在全域性變數head和tail中。輸入為若干個學生的資訊 學號...