zoukankan      html  css  js  c++  java
  • 2014.3.6-C语言学习小结

    链表基础:

    知识点:
    	1.链表基础
    	2.节点的创建和添加		llist_append_node
    	3.链表的遍历		llist_print_each
    	4.链表的查找与修改
    	5.链表的插入与删除
    	6.链表的销毁
    	7.链表逆序
    
    
    ==========================
    回顾数组
    	1.数组的常用操作
    	  1)插入
    	  2)修改
    	  3)遍历
    	  4)删除
    	  5)逆序
    	2.数组操作的问题
    	  1)插入和删除的效率低
    			1 2 3 5 6 0 0
    			1 2 3 4 9 5 6
    			1 2 3 4 9 5 6 0
    	  2)当数组空间不足时需要重新申请内存空间
    	  3)但是遍历速度快
    ==========================
    链表基础
    	1.什么是链表
    	   链表(Linked list)是一种常见的基础数据结构,是一种线性表
    	2.链表的作用
    	  一种数据结构,保存数据
    	3.如何创建链表
    ==========================
    链表节点的创建和添加
    	1.如何创建和添加一个节点
    	2.如何插入一个节点
    	4.处理链表的框架
    void llist_append_node
    			(struct node *head, 
    		          struct node *new)
    void llist_change_node(struct node *head, 
    			             int id, 
    			             char *name)
    		append	*
    		insert  *
    		search	*
    		change
    		delete
    		destory
    		print_all  *
    		print_node
    
    	5.添加节点模块append
    	练习:添加一个节点到头结点后面
    ==========================
    链表的遍历
    	1. llist_print_each函数
    	void llist_print_each(struct node *head);
    	 练习:
    	      1.遍历输出链表内容
    	      2.向链表添中加多个节点
    ==========================
    链表的查找与修改
    	1. llist_search_node函数
    struct node *llist_search_node(struct node *head, int id)
    void llist_print_node(struct node *nd)
    	  1)遍历链表
    	  2)比较要搜索的内容是否和节点数据内容匹配
    	  3)返回节点地址
    	  练习:
    		1.查找指定id的学生信息,并输出该信息
    	2.change函数
    	  1)搜索要修改的节点空间
    	  2)修改节点内的数据
    		1.修改指定id的学生性别
    ==========================
    链表的插入和删除
    	1. llist_insert_node函数
    void llist_insert_node(struct node *head,
    			            struct node *nd, int id)
    	  1)创建一个新节点
    	  2)插入到指定位值
    	  练习:
    			链表包含10个节点
    			id=3,id=4 <== tmp
    			       id=1
    	       1.创建一个新节点并且插入到第一个节点的前面
    	       2.创建一个节点并且插入到第三和第四个节点之间
    	2.delete函数
    void llist_delete_node(struct node *head, int id);
    	  1)修改该节点上一个节点的指向
    	  2)释放当前节点
    	  练习:
    		1.删除id为1节点
    		2.删除id为10节点
    		3.删除id为5节点
    ==========================
    链表销毁
    	1.destory函数
    	int llist_destory(struct node *head);
    	 1)销毁和清空是两种不同的操作
    	   例如:倒空杯子的水和砸碎杯子两个操作
    	 练习:
    	     销毁上面创建的链表
    ==========================
    链表逆序
    	H->A->B->C->D->E
    	   ^  ^	 ^  
    	   p  pp  t
    	1.inverse函数
    void llist_inverse(struct node *head);
    	 练习:
    	     1.按照上述顺序实现一个链表的逆序,并输出逆序的结果
    ==========================
    多文件封装
    	1.头文件
    	2.实现文件
    ==========================
    创建一个班级链表,该链表包含10个学生信息
    1.每个学生包含信息有
    		姓名,年龄,身高,性别,语数英三门成绩
    2.实现:
    	1)添加学生信息
    	2)输出所有的学生信息
    	3)搜索指定学生的信息,并且输出
    	4)将指定学生插入到指定学生的前面
    	5)删除指定学生信息
    	6)销毁班级链表
    	========================
    	enume menu{
    			EXIT, ADD, SONE, SALL, 
    		         INSERT, DEL, DELALL};
    	1.添加学生
    	2.查询指定学生信息
    	3.查询所有学生信息
    	4.学生插队
    	5.删除指定学生信息
    	6.删除班级
    	0.退出系统
    

      

  • 相关阅读:
    倚天
    第5課 森さんは7時に起きます。
    第1課 李さんは中国人です
    一个整体的规划
    こんにちは
    原始凭证
    第3課 ここはデパートです
    ERP术语
    第2課 これはほんです
    vc 问题总结
  • 原文地址:https://www.cnblogs.com/firstrate/p/3585962.html
Copyright © 2011-2022 走看看