伤不起的指针

虽然知道怎么做,但是还是做一遍啦。结果调试了两个多小时,真崩溃。

/*
* =====================================================================================
*
* Filename: intlist.h
*
* Description:
*
* Version: 1.0
* Created: 09/16/2011 02:56:13 AM
* Revision: none
* Compiler: gcc
*
* Author: YOUR NAME (),
* Company:
*
* =====================================================================================
*/

#include
<stdio.h>
#include
<stdlib.h>
struct list_node
{
int data;
struct list_node *next;
};
struct list_node * make_node(int n)
{
struct list_node *pNode = (struct list_node *)malloc(sizeof(struct list_node ));
pNode
->next = 0;
pNode
->data = n;
return pNode ;
}
void put_node(struct list_node *pNode)
{
free(pNode);
}
struct list
{
struct list_node *head;
};

void CreateNoHead(struct list *root,int arrary[],int n)
{
struct list_node ** ppHead = &(root->head);
struct list_node * pNode ;
for(int i = 0; i< n ;++i)
{
pNode
= make_node(arrary[i]);
/*if(!*ppHead)
{
*ppHead = pNode;
}else{
pNode->next = (*ppHead);
*ppHead = pNode;
}
*/
if(*ppHead)
pNode
->next = (*ppHead);
*ppHead = pNode;
printf(
"%d\t",pNode->data);
}
printf(
"\n");
fflush(stdin);
}
void CreateHead(struct list *root,int arrary[],int n)
{
root
->head = make_node(0);
struct list_node * pHead = root->head;
struct list_node * pNode ;
for(int i = 0; i< n ;++i)
{
pNode
= make_node(arrary[i]);
/*
if(*head)
{
pNode->next = (*head)->next;
(*head)->next = pNode;
}
else//root->head = null
pNode->next = *head;
*head = pNode;
*/
//先进后出链表
pNode->next = pHead->next;
pHead
->next = pNode;
printf(
"%d\t",pNode->data);
}
printf(
"\n");
fflush(stdin);
}
void Print(const struct list *root)
{

struct list_node * pNode = root->head;
while(pNode)
{
printf(
"%d\t",pNode->data);
pNode
= pNode->next;
}
printf(
"\n");
fflush(stdin);
}
void Destroy(struct list *root)
{

struct list_node * pNode = root->head;
struct list_node * pNext;

while(pNode)
{
pNext
= pNode->next;
put_node(pNode);
pNode
= pNext;
}
}
void ReverseHead(struct list *root)
{
struct list_node * pHead = root->head->next;
struct list_node * pNode ;
struct list_node * pNext ;
if(!pHead ||!(pNode = pHead->next))
return ;
//伤不起啊,该处要赋值为空
pHead->next = 0;
while(pNode)
{
pNext
= pNode->next;
pNode
->next = pHead;
pHead
= pNode;
pNode
= pNext;
}
//重新赋值
root->head->next = pHead;
}
void ReverseNoHead(struct list *root)
{
struct list_node * pHead = root->head;
struct list_node * pNode ;
struct list_node * pNext ;
//链表只有一个或零个节点
if(!pHead ||!(pNode = pHead->next))
return ;
pHead
->next = 0;
while(pNode)
{
pNext
= pNode->next;
//插入
pNode->next = pHead;
pHead
= pNode;

pNode
= pNext;
}
//head重新赋值,新的表头
root->head = pHead;
}
void TestNoHead(struct list *root)
{

}
void TestHead(struct list *root)
{

}
int main(int argc,char *argv[])
{
int arrary [] = {1,2,3,4,5,6,7,8,9,10};
struct list task;
task.head
= 0;
CreateHead(
&task,arrary,sizeof(arrary)/sizeof(int));
//CreateNoHead(&task,arrary,sizeof(arrary)/sizeof(int));
Print(&task);
printf(
"\n");
//Reverse(&task);
//ReverseNoHead(&task);
ReverseHead(&task);
Print(
&task);
Destroy(
&task);
return 0;
}

  

转载于:https://www.cnblogs.com/westfly/archive/2011/09/17/2179826.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298066.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[禅悟人生]尊严非席, 不可卷起

日本江户时期是一个社会很不稳定的时期&#xff0c;浪人武士依仗强力横行无忌。 有一个著名的茶师跟随着一个显赫的主人。 有一天主人要去京城办事&#xff0c;舍不得离开茶师&#xff0c;就说&#xff0c;你跟我去吧&#xff0c;好每天给我泡茶。茶师很害怕&#xff0c;对主人…

要男女朋友有什么用?

1 题&#xff1a;我不要面子的嘛&#xff01;2 狗都有人给撑伞了。。3 这大概就是传说中的一见钟情吧4 5 南方人说话有多软糯6 男女朋友有什么用你点的每个赞&#xff0c;我都认真当成了喜欢

低代码应用创新成果——轴承行业数字化智造系统(含MES/ERP/WMS)

轴承是当代机械设备中一种不可或缺的零部件&#xff0c;广泛应用于汽车、铁路车辆及各类工业机械和家用电器等国民经济的重要领域&#xff0c;是一种节约能源、提高效率的伟大发明。轴承行业作为装备制造业的先锋&#xff0c;一直以来都走在数字化转型的前列&#xff0c;引领行…

城管威逼交警“让老百姓笑话”

城管威逼交警“让老百姓笑话” 发表时间:2010-07-05 09:15:42 来源&#xff1a;新华每日电讯我说两句(加入讨论) “给我们车贴罚单&#xff0c;你是不是不想干了&#xff1f;咱都是执法的&#xff0c;这一整&#xff0c;不让老百姓笑话吗&#xff1f;”这是沈阳市一位城管对正…

重点客户销售数据分析python_药品销售数据分析--python

一、数据分析的目的数据分析是指用适当的统计分析方法对收集来的大量数据进行分析&#xff0c;提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。本篇文章中&#xff0c;假设以朝阳医院2018年销售数据为例&#xff0c;目的是了解朝阳医院在2018年里的销售情况&…

C#类与结构体究竟谁快——各种函数调用模式速度评测

以前我一直有个疑惑——在C#中&#xff0c;究竟是类&#xff08;class&#xff09;比较快&#xff0c;还是结构体&#xff08;struct&#xff09;比较快&#xff1f;当时没有深究。 最近我遇到一个难题&#xff0c;需要将一些运算大的指针操作代码给封装一下。原先为了性能&…

HelloSilverlight

一&#xff1a;输入姓名并选中一个日期&#xff0c;将在下面显示 二:XAML代码 <UserControl x:Class"HelloSilverlight.MainPage"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2…

Building a Space Station--POJ 2031

1、题目类型&#xff1a;计算几何&#xff0c;最小生成树。 2、解题思路&#xff1a;&#xff08;1&#xff09;获得所有点路径长度的矩阵map[][]&#xff1b;&#xff08;2&#xff09;利用Prim算法求解最小生成树。 3、注意事项&#xff1a;数学操作&#xff0c;中间值全部用…

21世纪7大数学难题,解决其中一个你就成为了百万富翁!

全世界只有3.14 % 的人关注了爆炸吧知识百万富翁你也可以昨天一大早&#xff0c;知识君就收到模友送的3枝红玫瑰。仔细一看&#xff0c;原来又是来跟知识君约稿的。。。知识君只能说&#xff1a;1900年&#xff0c;希尔伯特&#xff08;传送门&#xff09;在巴黎国际数学家代表…

在 Azure VM 上使用 Jitsi 搭建私人视频会议

点击上方蓝字 / 关注“汪宇杰博客”原文&#xff1a;Azure Tips And Tricks翻译&#xff1a;汪宇杰私人视频会议市面上有许多视频会议应用程序&#xff0c;例如 Zoom、Microsoft Teams 和 Skype。有时&#xff0c;您需要自己的服务&#xff0c;以让自己更安全并在自己的公司内部…

php 筛选数组,2020-07-24 php 通过数组键值对筛选数组

筛选数组 $listMenuArray([0] > Array([type] > 0[min] > 0)[1] > Array([type] > 1[min] > 1))目标数组 $resArray([0] > Array([id] > 183[type] > 0[min] > 0)[1] > Array([id] > 184[type] > 0[min] > 1)[2] > Array([id] &g…

python省市区三级联动_Django Admin实现三级联动的示例代码(省市区)

通过自定义Admin的模板文件实现省市区的三级联动.要求创建记录时,根据省>市>区的顺序选择依次显示对应数据.修改记录时默认显示已存在的数据.Modelclass Member(models.Model):name models.CharField(max_length100, verbose_name姓名)province models.CharField(max_l…

[LeetCode]119.Pascal#39;s Triangle II

题目 Given an index k, return the kth row of the Pascal’s triangle. For example, given k 3, Return [1,3,3,1]. Note: Could you optimize your algorithm to use only O(k) extra space? 思路 无 代码 /**------------------------------------* 日期&#xff1a…

2010.7.29 模式对话框

为什么点击ONOK后&#xff0c;对话框上的控件资源会被删除&#xff1f;OnOK做了什么事儿&#xff1f; 假如有一个对话框Class CMyDialog 我在CMyDialog中&#xff0c;声明了一个m_button&#xff0c;然后在OnInitDlg()中create这个buttton&#xff0c;即m_button.create() 然后…

终于有人做了我一直想做而不敢做的事。。

1 初中物理是不是学过&#xff0c;受力面积小&#xff0c;相应的压力就大&#xff5e;我觉得应该直接趴上去&#xff0c;一定行&#xff5e;反正我也是瞎说的2 不是我吹&#xff0c;换成是我&#xff0c;这包子能吃五屉3 交警蜀黍耐心的领着这位行人过马路&#xff0c;麻烦你快…

.NET 6 中的隐式命名空间引用

.NET 6 中的隐式命名空间引用Intro之前写过一篇隐式命名空间引用的大概介绍&#xff0c;在一些小的测试项目中也有在用&#xff0c;一直没作为示例给大家分享&#xff0c;主要原因在于之前看到了一个关于隐式命名空间引用的 Github issue 提到会有一些破坏性的变更&#xff0c;…

vscode函数跳转插件_人生苦短,我们为 Cocos Creator 开发的插件和工具

在使用 Cocos Creator 开发项目的过程中&#xff0c;为了提高开发效率我们开发了很多扩展插件&#xff0c;本文介绍常用的几款&#xff0c;抛砖引玉&#xff0c;希望给大家带来帮助。腾讯开心鼠英语网页扩展&#xff1a;运行时查看场景节点树Cocos Creator 本地项目通常会在 Ch…

SQLSERVER 日志收缩

SQL2008 的收缩日志 由于SQL2008对文件和日志管理进行了优化&#xff0c;所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消&#xff1a;(SQL2005)BackupLog DNName with no_loggodumptransaction DNName with no_loggoUSE DNName DBCC SHRINKFILE (2)Go---------------…

压缩JS和CSS常用的工具

前些时候在发现将 JS和CSS压缩一下&#xff0c;的确有好处。在网上找了一下&#xff0c;发现下面的两款工具比较不错。 经过资源&#xff08;比如 CSS 和 JavaScrip 文件&#xff09;压缩测试了。 其中一个工具就是 YUI Compressor&#xff0c;一个来自Yahoo! Developer Networ…

php+转义实体字符,PHP针对HTML实体字符的转义函数

htmlspecialchars()转义特别的字符为HTML实体&#xff1b;& (ampersand) becomes & " (double quote) becomes " when ENT_NOQUOTES is not set. (single quote) becomes only when ENT_QUOTES is set. (greater than) becomes >htmlspeci…