将一个带头结点的单链表倒置程序(用指针的方法)

luoryan luoryan 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include<stdio.h>
#include<malloc.h>


typedef struct node{
int data;
struct node *next;
} NODE;


/********************链表**********************/
NODE *Create(){
NODE *p,*head;
int x;
head=(NODE *)malloc(sizeof(NODE));
head->next=NULL;
printf("Input data,-1 to End!\n");
scanf("%d",&x);
while(x!=-1){
p=(NODE *)malloc(sizeof(NODE));
p->data=x;
p->next=head->next;
head->next=p;
scanf("%d",&x);
}
return(head);
}

/******************************************/
void Output(NODE *head){
NODE *p;
p=head;
printf("Begin to dump the LinkList...\n");
while(p->next!=NULL){
printf("->%d",p->next->data);
p=p->next;
}
printf("\nThe LinkList ended!\n");
}

/*******************倒置函数***********************/
void ds(NODE *head){
NODE *p;
p=head;
printf("Begin to ds the LinkList...\n");
p=p->next;
while(p->next!=NULL){
head=p->next;
p->next=p->next->next;
p->next->next=p;
if(p->next!=NULL)
p=p->next;
}

printf("\nThe dsList ended!\n");
}
/******************************************/
void main(){
NODE *head;
head=Create();
Output(head);
ds(head);
Output(head);


}
以上是用指针的方法将一个带头结点的单链表倒置的程序,
但运行时得不到想要的结果,我认为是倒置函数有问题,
但不会改,请哪位高手帮忙更改一下,谢谢!!
...全文

相关推荐

ConsoleApplication3_suggesttmd_C++_

不带头结点的单链表倒置的算法与实现 数据结构部分

心若悬河

实现不带头节点单链表倒置算法

在数据结构的世界里,单链表作为最基本的线性数据结构之一,它允许存储动态数量的元素,并提供了高效的元素插入和删除操作。单链表由一系列节点组成,每个节点包含两部分:数据域和指针域。数据域用于存储实际的数据,而指针域则存储了指向链表中下一个节点的引用。不同于数组,单链表不支持随机访问,但其灵活性在于可以方便地在任意位置插入或删除节点。单链表的头指针指向链表的第一个节点,而尾指针(如果存在)则指向链表的最后一个节点。这种结构使得从头节点遍历到尾节点成为可能。

lanjieying

给定一个不带头结点的单链表,写出将链表倒置的算法

给定一个不带头结点的单链表,写出将链表倒置的算法

天堂de果冻

借助栈将一个带头结点的单链表倒置

写一个算法,借助栈将一个带头结点的单链表倒置。类c算法

生绣的金子

利用带头结点的单链表实现两个集合的并、交、差运算.docx

利用带头结点的单链表实现两个集合的并、交、差运算 1.题目重述 2.题目功能描述 3. 概要设计图 4. 程序源代码及注释 5. 流程图 6. 截图与数据分析 7.所采用的存储结构的优缺点及采用理由 8.实验心得体会

Sheldmy
评论 8
收藏 已收藏
分享
返回顶部
luoryan
C语言 70,040 成员 243,237 内容