!.建立單鏈表,每個節點包括學號、姓名、性別、年齡和計算機成績。實現按學號刪除
鍊錶中指定結點的功能。
2. 將 1 中建立的單向鍊錶 a 分別拆成兩個鍊錶 b,c。b 中存放 80 分以上成績的節點,c
中存放其他結點。
3. 將 1 中建立的單向鍊錶 a 改為按計算機成績遞增排序的單向鍊錶,並統計出高於平均
成績的人數。
4. 輸入新的結點,插入到 3 中的遞增順序的鍊錶中。
5. 輸入姓名,刪除該結點。
**如下:
/*測試資料
2015 xiaoming nan 19 89
2014 liuhu nan 20 75
2202 xiaopang nv 19 80
2005 liuliu nan 22 81
8900 xiaohong nv 21 80
0 0 0 0 0
*/#include#include#include#define len sizeof(struct student)
typedef struct studentstu;
int n;//統計節點數
//鍊錶建立
stu *creat()
free(p1);
p2->next=null;
return (head);
}//按學號刪除
stu *del(stu* head,double nu) //nu代表學號
else if(t->next==null)
else
}in=t;
t=t->next;
} if(!flag) printf("未找到該學號\n");
return head;
} //輸出鍊錶
void print(stu *head)
}else
}//把鍊錶分成b,c
void apart(stu* head)
else b1->next=b;
b1=b;
} else
else c1->next=c;
c1=c;
} t=t->next;
}c->next=b->next=null;
printf("鍊錶b:\n");
print(hb);
printf("鍊錶c:\n");
print(hc);
free(hb);
free(hc);
}//鍊錶排序(選擇)
stu* change(stu* head)
p=p->next;
} t=t->next;
if(t!=null)
p=t->next;
else
p=null;
} return head;
}//插入新的節點
stu* insert(stu* head)
else
flag=0;
break;
} p=t;
t=t->next;
} if(flag)
return head;
}//按姓名刪除節點
stu* del_name(stu* head)
else if(t->next==null)
else
flag=0;
//break; //是否需要刪除重複的名字
} p=t;
t=t->next;
} if(!flag)
printf("找不到該節點\n");
return head;
}int main()
C語言學習筆記 鍊錶
鍊錶是一種常見的重要的資料結構。它是動態地進行儲存分配的一種結構。它可以根據需要開闢記憶體單元。鍊錶有乙個 頭指標 變數,以head表示,它存放乙個位址。該位址指向乙個元素。鍊錶中每乙個元素稱為 結點 每個結點都應包括兩個部分 一為使用者需要用的實際資料,二為下乙個結點的位址。因此,head指向第乙...
C語言學習筆記 24鍊錶
一 鍊錶和陣列的比較 二 鍊錶中的術語 三 演算法 四 鍊錶結構示意圖 五 示例 include include include 定義乙個鍊錶結構 struct node 函式宣告 struct node createlist void void ergodiclist struct node in...
C語言學習筆記 鍊錶(三)鍊錶的插入
從指定節點後方插入新節點 假設我們已有五個節點,我們要把乙個新節點new插入到3後邊。需要三個步驟 找到 3 這個節點。把新節點指向3這個節點的下乙個節點 3 next new next 把3指向新節點。3 next new 定義結構體 struct test 輸出鍊錶資料 void printli...