下载此文档

单链表反转.docx


文档分类:医学/心理学 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
《数据结构》实验一报告
学号:20********** 机器号 姓名: 李江波
日期: 程序名:
实验内容: (一)单链表的就地反转
一、 目的和要求(需求分析):
1、 掌握数据的链式存储结构以及链表的建立和操作。
2、 利《数据结构》实验一报告
学号:20********** 机器号 姓名: 李江波
日期: 程序名:
实验内容: (一)单链表的就地反转
一、 目的和要求(需求分析):
1、 掌握数据的链式存储结构以及链表的建立和操作。
2、 利用链表的原空间进行链表的反转;
(设计一个将输入数据建立成链表、并依次输出链表数据、利用原空间把链表反转的程序。)
二、 程序设计的基本思想,原理和算法描述:
(包括程序的结构,数据结构,输入/输出设计,符号名说明等)
三、 调试和运行程序过程中产生的问题及采取的措施:
四、源程序及注释:
#include<>
#include<>
#include<>
#include<>
struct Node
{
int data;
struct Node *next;
};
typedef struct Node ListNode;
ListNode *CreateList(int n)
{
ListNode *head;//指向头结点指针
ListNode *p,*pre;
int i;
head=(ListNode *)malloc(sizeof(ListNode));//为头节点分配内存空间
head->next=NULL;//将头结点的指针域清空
pre=head;/冼将头结点首地址赋给中间变量pre
for(i=1;i<=n;i++)//通过for循环不断加入新的结点
{
p=(ListNode *)malloc(sizeof(ListNode));//为要插入的节点分配
〃内存空间p指向新插入结点的首地址
scanf("%d",&p->data);//输入
pre->next=p;//将 p指向新结点插入链表也就是头结点指针域指向
//下个结点
//第一个结点就是p指向的,因为头结点内容为空
pre=p;//这个起着指向下一个结点的作用
}
p->next=NULL;//<后将最后一个结点的指针域清空了
return head;//返回这个链表的首地址
}
void PrintList(ListNode *h)
{
ListNode *p;
p=h->next;
while(p)
(
printf("%d",p->data);
p=p->next;
}
printf("\n");
}
void Reserve(ListNode *h)
{
ListNode *p,*q;
p=h->next;
h->next=NULL;
while(p)
{
q=p->next;
p->next=h->next;
h->next=p;
p=q;
}
}
int main()
void PrintList(ListNode *h);
ListNode *CreateList(int n);
void Rese

单链表反转 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人suijiazhuang2
  • 文件大小33 KB
  • 时间2022-08-25
最近更新