资源简介
VS2008运行环境 c语言实现单链表增删改查操作 并输出到控制台上

代码片段和文件信息
// CNode.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include “windows.h“
typedef struct _Node
{
char data;
_Node *next;
}Node;
void insertNode(Node **headint ichar e);
void printNode(Node **head);
void deleteNode(Node **headint i);
int _tmain(int argc _TCHAR* argv[])
{
Node *h;
h = NULL;
insertNode(&h0‘a‘);
insertNode(&h1‘b‘);
insertNode(&h0‘c‘);
insertNode(&h4‘d‘);
printNode(&h);
deleteNode(&h1);
printNode(&h);
deleteNode(&h0);
printNode(&h);
deleteNode(&h1);
printNode(&h);
return 0;
}
/* *插入操作要确保要插入位置的前一个节点不为空并标记出其位置指针
*因此要确保q的存在
*节点从0计数
第0个节点是头指针所指节点 */
void insertNode(Node **headint ichar e)
{
Node *q;
Node *p;
int j;
p = *head;
if(i == 0)
{
//插入位置在头指针处 头指针为空 不为空 时的情况
if((p = (Node *)malloc(sizeof(Node))) == NULL)
{
//节点空间申请失败
}
p->next = *head;
p->data = e;
*head = p;
printf(“%c\n“e);
return;
}
q = *head;
j = 0;
while(p != NULL && j < i)
{
q = p ;
p = p->next;
j++;
}
if(i == j)
{
if((p = (Node *)malloc(sizeof(Node))) == NULL)
{
//节点空间申请失败
}
p->data = e;
p->next = q->next; //将新申请的节点next指向当时的操作节点
q->next = p; //将原操作节点next指向新申请的节点
printf(“%c\n“e);
return;
}
//当 i != j 时的情况输出error
printf(“插入位置为%d的节点失败 !\n“i);
}
void printNode(Node **head)
{
Node *p = *head;
if (p == NULL)
{
printf(“%s\n“NULL);
}
while(p != NULL)
{
printf(“%c\n“p->data);
p = p->next;
}
}
/*
*删除操作要求是 要删除节点和其前一个节点都不可为空并标记其位置指针
*因此要确保p q都不为空
*节点从0计数
第0个节点是头指针所指节点 */
void deleteNode(Node ** head int i )
{
Node * q;//标识要删除节点的前一个节点
Node * p;//标识要删除的节点
int j;
if(*head == NULL)
{
//empety node list
printf(“删除元素不存在!\n“);
return;
}
p = *head;
if(i == 0)
{
*head = p->next;
free(p);
printf(“成功删除位置为%d的元素!\n“i);
//p = NULL;
return ;
}
q = *head;
j = 0;
while(p->next != NULL && j < i)
{
q = p;
p = p->next;
j ++;
}
if(i == j)
{
q->next = p->next;
free(p);
printf(“成功删除位置为%d的元素!\n“i);
return;
//p = NULL;
}
//当 i != j 时的情况输出error
printf(“要删除位置为%d的元素不存在!\n“i);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2887 2012-09-21 18:11 CNode\CNode.cpp
文件 7695360 2012-09-21 18:11 CNode\CNode.ncb
文件 875 2012-09-21 17:54 CNode\CNode.sln
..A..H. 11264 2012-09-21 18:11 CNode\CNode.suo
文件 4492 2012-09-21 17:54 CNode\CNode.vcproj
文件 1427 2012-09-21 18:11 CNode\CNode.vcproj.MICROSO-BJT4QU3.Administrator.user
文件 1171 2012-09-21 17:54 CNode\ReadMe.txt
文件 210 2012-09-21 17:54 CNode\stdafx.cpp
文件 233 2012-09-21 17:54 CNode\stdafx.h
文件 498 2012-09-21 17:54 CNode\targetver.h
目录 0 2012-09-21 18:12 CNode
----------- --------- ---------- ----- ----
7718417 11
相关资源
- 用回溯法解决八皇后问题C语言实现
- 操作系统课设 读写者问题 c语言实现
- 3des加密算法C语言实现
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- 线性回归算法c语言实现
- 用C语言实现的一个打字游戏
- C语言实现的DES对称加密算法
- 用C语言实现高效日志
- C语言实现十进制转十六进制
- 文件传输和聊天程序(c语言实现)
- 基于C语言实现的网络爬虫(搜索引擎
- c语言实现火车订票系统(控制台)源
- 模拟笔记本电脑(C语言实现)
- c语言实现竞技比赛打分系统
- C语言实现 设备信息管理系统
- c++ 单链表
- 2048小游戏c语言实现
- C语言实现的航空售票系统
- 简单通讯录C语言实现
- C语言实现栈操作
- C语言实现的银行家算法 做了界面
- filtfilt C语言实现,可直接运行验证
- 用C语言实现一个火车站的订票系统
- c语言课程设计-职工信息管理系统-单
- 多表代换 加密解密 C语言实现
- c语言实现的商品进销存管理系统
- 公交车查询系统C语言实现
- 赋值语句翻译c语言实现四元式
- c语言实现bch编码
评论
共有 条评论