当前课程知识点:C语言程序设计(下) > 第八周:链表(二) > 8.4 链表的基本操作 > html
#include<stdio.h>
#include<stdlib.h>
struct node
{ char name[20],address[20],phone[15];
struct node * link; /*定义node型结构指针 */
}; /* 定义结构 */
typedef node NODE; /* 定义结点类型 */
main()
{
NODE * head ;
NODE * p;
p = ( NODE * ) malloc ( sizeof (NODE) ) ; /* 开辟新存储区,申请表头节点 */
p->link = NULL; /* 将表头节点的link置为NULL*/
head = p;
int create ( NODE * head , int n );
create ( head , 2 );
int insert_node ( NODE * head , NODE * p , int i );
p = ( NODE * ) malloc ( sizeof (NODE) ) ;
gets(p->name);
insert_node(head, p, 1);
int output ( NODE * head );
output(head);
int delete_node ( NODE * head , int i );
delete_node(head,2);
output(head);
getchar();
}
int create ( NODE * head , int n )
{ NODE * p;
for ( ; n>0 ; n-- )
{ p = ( NODE * ) malloc ( sizeof(NODE)) ;
gets ( p->name);
p->link = head->link;
head->link = p;
}
return 0;
}
int output ( NODE * head )
{
NODE * p;
p = head->link; /* p 指向第一个数据节点 */
while ( p!=NULL )
{ puts ( p->name ) ; /* 输出 p 所指向节点的数据 */
p = p->link ; /* p 指向下一个数据节点 */
}
return 0;
}
int insert_node ( NODE * head , NODE * p , int i )
{
NODE * q;
int n=0;
for ( q = head; n<i && q->link!=NULL; ++n )
q = q->link; /* ① 定位 */
p->link = q->link; /* ② 链接后面指针 */
q->link = p; /* ③ 链接前面指针 */
return 0;
}
int delete_node ( NODE * head , int i )
{
NODE * q, * p;
int n;
for ( n=0, q = head; n<i-1 && q->link!=NULL; ++n )
q = q->link; /* ① 定位 */
if ( i>0 && q->link != NULL )
{
p = q->link; /* p 指向被删除节点 */
q->link = p->link; /* ② 摘链 */
free ( p ); /* ③ 释放 p节点 */
}
}
-1.1 函数定义
--内容简介
--函数是什么
--例题演示
--知识点总结
-1.1 函数定义--作业
-1.2 模块化程序设计
-1.3 函数调用、声明和返回
--函数调用的过程
--函数嵌套调用
-1.4 函数间参数传递
--形参与实参值传递
--小结
--html
-1.4 函数间参数传递--作业
-函数递归调用
--html
--html
--html
--html
--html
--html
-函数递归调用--作业
-3.1 变量存储属性
--开场
--局部变量全局变量
--存储类别小结
--html
--html
--html
--html
--html
-3.1 变量存储属性--作业
-3.2 编译预处理
--编译预处理开头
--编译预处理内容
--库函数
--函数总结
--综合例子
--html
-3.2 编译预处理--作业
-4.1 指针的定义、初始化和引用
--本周内容简介
-4.1 指针的定义、初始化和引用--作业
-4.2 指针与数组
--指针与数组
--Video
-4.2 指针与数组--作业
-5.1 指针与字符串
--本周开篇介绍
--指针与字符串
--指针与字符串小结
-5.1 指针与字符串--作业
-5.2 多维数组指针
--指针与多维数组
--html
--html
--html
--html
--html
--html
--html
--html
-5.2 多维数组指针--作业
-6.1指针与函数
--本周开篇介绍
--指针指向函数
--返回指针值的函数
--html
--html
--html
-6.1指针与函数--作业
-6.2指针与指针
--引入指针数组
--指针数组
--二级指针
--指针内容小结
--html
--html
--html
--html
-6.2指针与指针--作业
-7.1 结构的概念
--Video
--Video
--Video
--Video
--html
--html
-7.1 结构的概念--作业
-7.2 结构数组
--Video
--Video
--html
-7.2 结构数组--作业
-7.3 结构指针
--Video
--Video
--Video
--html
-7.3 结构指针--作业
-7.4 结构与函数
--Video
--html
-7.4 结构与函数--作业
-7.5 联合
--Video
--Video
--html
-7.5 联合--作业
-8.1 typedef自定义类型
--自定义类型
-8.1 typedef自定义类型--作业
-8.2 枚举类型
--枚举类型
-8.2 枚举类型--作业
-8.3 链表的概念
--为什么使用链表
--链表的定义和功能
-8.3 链表的概念--作业
-8.4 链表的基本操作
--创建链表的步骤
--创建链表的过程
--访问链表中的节点
--约瑟夫问题
--html
--html
-8.4 链表的基本操作--作业
-9.1 文件概述
--文件概念
--文件分类
-9.1 文件概述--作业
-9.2 文件型指针
--文件结构与指针
--设备文件
--html
-9.2 文件型指针--作业
-9.3 文件的打开与关闭
--文件读写方式
--文件读写操作
-9.3 文件的打开与关闭--作业
-9.4 文件的顺序读写
--字符串输入输出
--html
-9.4 文件的顺序读写--作业
-9.5 文件的随机读写
--文件随机读写
-9.5 文件的随机读写--作业
-9.6 文件检测
--文件检测
-9.6 文件检测--作业
-9.7 文件应用实例
--文件应用实例
--html
--html
-10.1 C语言知识总结
--程序调试概念
--软件测试方法
--程序跟踪调试
--C语言语法要点
--标识符及运算符
--程序设计流程
--数组、函数及指针
--结构和文件
-10.1 C语言知识总结--作业
-10.2 C语言练习
--程序设计方法
--图像合成例子
--html
-期末考试复习题
--html
-期末考试复习题答案
--html