通訊錄是每乙個c語言的學習者,在學到資料結構課程後應該實現的程式,用到的知識c語言和資料結構都有涉及,比如:陣列,函式,指標,鍊錶,結構體,字元庫函式等等。
先看**:
#include#include#include#includestruct s
;void mune()
void dayin(struct s *s)//列印通訊錄中所有聯絡人
}void tianjia(struct s **ph)//新增聯絡人
else
cur->next = p; }}
void chazhao(struct s *ph)//查詢聯絡人
cur = cur->next;
} if (cur == null) }
void shanchu(struct s **ph)//刪除聯絡人
p = cur;
cur = cur->next;
} if (p == null)
else
free(cur); }}
void paixu(struct s *ph)//對聯絡人的年齡進行排序
p = p->next;
} cur = cur->next;
} printf("從小到大的排序已經完成\n");
dayin(ph);
}void qingkong(struct s **ph)//清空通訊錄
*ph = cur;
printf("已經清空\n");
}void xianshi(struct s *ph)//顯示通訊錄的中聯絡人
}void xiugai(struct s **ph)//對聯絡人的**進行修改
p = cur;
cur = cur->next;
} if (p == null)
else }
int main()
} while (input);
system("pause");
return 0;
}
既然是通訊錄,第一步自然就是新增聯絡人!
聯絡人的新增就是在某一塊記憶體中,拿到乙個結構體大小的空間,用來存放它,所以首先就是建立乙個指標指向這個空間,然後通過以後的步驟對這個空間進行修改。如果新增兩個或者兩個以上的聯絡人,我們需要用鍊錶將多個空間聯絡在一起。
以四個聯絡人為例:
新增完成後,接下來就是查詢,查詢的核心為當然是找,所以就會用到strcmp的字元庫函式。
第三步:刪除
第四步:排序
排序和氣泡排序的基本思想一樣,建立兩個指標後,相互比較,根據條件,交換位置。但是交換的不僅僅只有年齡,應該交換名字,性別,年齡,**。
第五步:顯示
顯示就是在儲存聯絡人的那個空間裡,按順序找,直到第四個聯絡人指向null,列印每乙個聯絡人的名字。
第六步:清空
第七部:修改
修改的核心來自於第三步刪除中的尋找,找到後才能修改。
執行:
單鏈表通訊錄 通訊錄2 0
單鏈表通訊錄 通訊錄2.0 標頭檔案 ifndef address h define address h include include include define success 10000 define failure 10001 define true 10002 define false ...
通訊錄問題
include using namespace std include include typedef struct lnodelnode,linklist 通訊錄的建立 void createlist l linklist l,int n createlist l 通訊者結點的插入 void li...
靜態通訊錄
這個通訊錄存粹用到c的知識就可以,主要就是乙個聯絡人資訊結構體,再就是乙個結構體陣列,對結構體陣列反覆操作 進行增 刪 查 改 排序 由於是初學者還不能對中文名進行排序 清空寫等功能。在這裡我們可以盡量寫的正式一點 所以我們用contact.h頭檔案建立結構體和對函式進行宣告 conteact.c中...