C語言學習 鍊錶

2021-09-23 01:49:17 字數 1869 閱讀 2213

!.建立單鏈表,每個節點包括學號、姓名、性別、年齡和計算機成績。實現按學號刪除

鍊錶中指定結點的功能。

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...