数字根c语言链表实现,c语言简单链表实现 - 阿豪boy的个人空间 - OSCHINA - 中文开源技术交流社区...
#include
#include
#define ElemType int
typedef struct{
ElemType e;
struct Node *next;
}Node,*pNode,**ppNode;//使用pNode表示一级指针,ppNode表示二级指针
//获得链表中节点数目
int getElemNum(pNode head);
//获得链表最后一个结点的指针
pNode getLastElem(pNode head);
//在链表尾部追加结点,若链表为空,则该节点为首结点
void appendElem(ppNode head,ElemType e);
//获得链表的第i个结点的指针 n>=i>0
pNode getElem(pNode head,int i);
//删除链表尾节点
void delLastElem(ppNode head);
//显示链表的结点数目以及结点数据
void showElem(pNode head);
//删除链表的第i个结点 n>=i>0
void delElem(ppNode head,int i);
//在第i个结点前面添加结点
void insertElem(ppNode head,int i,ElemType e);
int main(int argc, char *argv[])
{
pNode head=NULL;
showElem(head);
appendElem(&head,1);
appendElem(&head,2);
appendElem(&head,3);
appendElem(&head,4);
showElem(head);
delLastElem(&head);
showElem(head);
insertElem(&head,1,10);
showElem(head);
delElem(&head,2);
showElem(head);
pNode p=getElem(head,3);
p->e=9999;
showElem(head);
return 0;
}
int getElemNum(pNode head){
if(!head) return 0;
pNode p=head;
int i=0;
while(p){
i++;
p=p->next;
}
return i;
}
pNode getLastElem(pNode head){
if(!head) return NULL;
pNode p=head;
while(p->next) p=p->next;
return p;
}
void appendElem(ppNode head,ElemType e){
pNode node = (pNode)malloc(sizeof(Node));
node->e=e;
node->next=NULL;
if(!*head){
*head=node;
return;
}
pNode p;
p=getLastElem(*head);
p->next=node;
}
void delLastElem(ppNode head){
int n =getElemNum(*head);
if(1>n) return;
if(n==1){
free(*head);
*head=NULL;
return;
}
pNode p = getElem(*head,n-1);
free(p->next);
p->next=NULL;
return;
}
pNode getElem(pNode head,int i){
int n = getElemNum(head);
if(i<1 || i>n) return;
int j=1;
pNode p=head;
while(j
j++;
p=p->next;
}
return p;
}
void showElem(pNode head){
if(!head){
printf("empty link\n");
return;
}
pNode p =head;
int n =getElemNum(head);
printf("this link has %d elems\n",n);
while(p){
printf("%d ",p->e);
p=p->next;
}
printf("\n");
return;
}
void delElem(ppNode head,int i){
int n =getElemNum(*head);
if(i<0 || i>n) return;
if(i==n) {
delLastElem(head);
return;
}
if(i==1){
*head=(*head)->next;
return;
}
pNode p1,p2;
p1=getElem(*head,i-1);
p2=getElem(*head,i+1);
p1->next=p2;
return;
}
void insertElem(ppNode head,int i,ElemType e){
int n=getElemNum(*head);
if(i<1 || i>n) return;
pNode node =(pNode)malloc(sizeof(Node));
node->e=e;
if(1==i){
node->next=getElem(*head,1);
*head=node;
return;
}
pNode p1,p2;
p1=getElem(*head,i-1);
p2=getElem(*head,i);
node->next=p2;
p1->next=node;
return;
}
数字根c语言链表实现,c语言简单链表实现 - 阿豪boy的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐
- c语言实现简单环形链表,c语言实现简单链表 - 阿豪boy的个人空间 - OSCHINA - 中文开源技术交流社区...
#include #include #define ElemType int typedef struct{ ElemType e; struct Node *next; } Node,*pNode; ...
- c语言n个测试用例0为结束,编写测试用例 - osc_4l0h8in9的个人空间 - OSCHINA - 中文开源技术交流社区...
软件测试用例: 软件测试用例就是指导你执行测试,帮助你证明软件功能或发现软件缺陷的一种说明. 可以总结为:每一个测试点的数据设计的步骤设计. 微信红包用例? 用例编号:HB_001 功能模块:发送红包 ...
- python语言是由谁设计并领导开发的_python语言概述 - osc_lt3ocv4d的个人空间 - OSCHINA - 中文开源技术交流社区...
python语言的发展 python语言诞生于1990年,由Guide van Rossum设计并领导开发. python语言是开源项目的优秀代表,其解释器的全部代码都是开源的. 编写Hello程序 ...
- 对称数c语言,中心对称数 - Developmer的个人空间 - OSCHINA - 中文开源技术交流社区...
中心对称数是指一个数字在旋转了 180 度之后看起来依旧相同的数字(或者上下颠倒地看). 请写一个函数来判断该数字是否是中心对称数,其输入将会以一个字符串的形式来表达数字. class Solutio ...
- c语言选择排序输出指定趟数结果,C语言之选择排序 - 杨源鑫的个人空间 - OSCHINA - 中文开源技术交流社区...
选择法排序是相对好理解的排序算法.假设要对含有n个数的序列进行升序排列,算法步骤是: 1.从数组存放的n个数中找出最小数的下标(算法见下面的"求最值"),然后将最小数与第1个数交换 ...
- 约瑟夫环c语言计蒜客链表,约瑟夫环的故事 - osc_3n35hvex的个人空间 - OSCHINA - 中文开源技术交流社区...
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading. ...
- %20ld c语言,C语言第二次实验报告 - osc_ldea7g3t的个人空间 - OSCHINA - 中文开源技术交流社区...
一.实验题目,设计思路,实现方法 第十一次作业(二维数组): 11-5 打印杨辉三角(20 分) 本题要求按照规定格式打印前N行杨辉三角. 输入格式: 输入在一行中给出N(1≤N≤10). 输出格式: ...
- c语言处理字符串函数的头文件,C语言字符处理函数 - 20131125的个人空间 - OSCHINA - 中文开源技术交流社区...
C语言提供了丰富的字符串处理函数, 大致可分为字符串的输入.输出.合并.修改.比较.转换.复制.搜索几类. 使用这些函数可大大减轻编程的负担.用于输入输出的字符串函数,在使用前应包含头文件" ...
- c 调用mysql密码为空_C语言连MySQL - osc_srnunz15的个人空间 - OSCHINA - 中文开源技术交流社区...
连接例程 用C语言连接MySQL数据库包含两个步骤" 初始化一个连接句柄结构: 实际进行连接. 初始化连接句柄 #include MYSQL *mysql_init(MYSQL *); 通常 ...
最新文章
- 推荐 7 个 Github 上近 200k Star 的计算机学习资源,练好前端内功的秘籍!
- 十分钟玩转 jQuery、实例大全
- 技术如何秒懂你?阿里百万级QPS资源调度系统揭秘
- python股票预测代码_python用线性回归预测股票价格的实现代码
- 最长子串(FZU2128)
- nginx环境下搭建nagios 3.5.0,及配置pnp4nagios画图
- 正则过滤符号_多角度理解正则项
- centos7搭建easy-mock服务
- Sass函数:random()函数
- Pandas DateOffset
- Atitit.一个cms有多少少扩展点,多少api wordpress cms有多少api。。扩展点
- LVGL『Roller滚轮控件』介绍
- Win10设置系统保护色
- idea中热部署插件JRebel的激活
- 来吧,我和你聊聊操作系统
- Python向已有数据的Excel表写入数据
- 监督学习算法的发展史和它们之间的关系:从文氏图到回归、决策树、支持向量机和人工神经网络...
- 数据结构与算法实验01-使用链表实现多项式乘法
- Edge检查更新时出错:无法连接到Internet。如果使用防火墙,请将 MicrosoftEdgeUpdate.exe 加入允许列表中。
- 求助vmbox更新之后打不开了