资源简介
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语言实现图像的文字识别OpenCV+OCR实现
- 国密SM2非对称算法C语言实现
- C语言实现的U盘 防火墙
- Butterworth滤波器C语言实现
- 直方图均衡化——C语言实现
- C语言实现2的指数次点的FFT
- 哲学家进餐问题的C语言实现
- 马尔可夫链的c++ C语言实现方法
- C语言实现linux系统下的MP3播放器源代
- 2D格斗游戏,C语言实现
- c++与Qt使用数据库MySQL进行数据的增删
- 基于HMM语音识别的C语言实现
- C语言实现TCP连接
- 基于C语言的台球小游戏超详细注释
- C语言实现建议的虚拟文件系统
- c语言实现俄罗斯方块
- 基于SIFT特征全景图像拼接C语言实现
- 数据结构王红梅
- 用C语言实现的基于adaboost算法的人脸
- 俄罗斯方块(C语言实现,有注释
- 算法:C语言实现(第5部分)图算法
- 用C语言实现Socket模拟TCP协议
- C语言实现贪吃蛇大量注释+用到的库文
- 基于目标距离的S型速度曲线规划
- Linux下C语言实现的图书管理系统
- 基于QT的C语言实现连连看游戏源码
- 算法c语言实现
- tcp ip sockets编程 c语言实现 第2版 中文
- c语言实现的,基于深搜和广搜,有界
- SoAndChan心电图ECG的R波侦测算法的C语言
评论
共有 条评论