创建一个链表,共有N(N由#define定义)个节点,第1个节点的数据域赋值为0,第2个节点的数据域赋值为1,以此类推,第20个节点的数据域赋值为19;输出数据

GPU小码农 2013-04-08 09:16:39
[code=c]#include<stdio.h>
#include<stdlib.h>

#define N 20

/* User Code Begin(Limit: lines<=5, lineLen<=60, 考生可在本行后添加代码、仅5行、行长<=60字符,功能是节点类型Link定义) */
struct Link {
int data;
struct Link *next;
};




/* User Code End(考生添加代码结束) */

void dispLink(struct Link *Head); /* 根据给定的链首Head,显示整个链表中的数据,同时检查两次使用的链表是否刚好反序 */
/* User Code Begin(Limit: lines<=2, lineLen<=60, 考生可在本行后添加代码、仅2行、行长<=60字符,功能是用户自定义函数的原型声明) */
struct Link * reverseLink(struct Link * head );
struct Link * creatLink();
/* User Code End(考生添加代码结束) */

int main(void)
{
struct Link *Head;

Head = creatLink(); /* 创建新链表 */
printf("\nbefore:");
dispLink(Head);

Head = reverseLink(Head); /* 反转链表 */
printf("\nafter:");
dispLink(Head);

return 0;
}

void dispLink(struct Link *Head)
{
static struct Link *oLink[2][N];
static int callNumber = -1;
int i = 0;

callNumber++;
if (callNumber > 1)
{
printf("Error, call invalid!\n");
return ;
}

while (Head != NULL)
{
oLink[callNumber][i] = Head;
i++;
printf("%d ", Head->data);
Head = Head->next;
}
printf("\n");

if (1 == callNumber)
{
for (i=0; i<N; i++)
{
if (oLink[0][i] != oLink[1][N-1-i])
{
printf("Error, Link not reverse!\n");
return ;
}
}
}
}

/* User Code Begin(考生在此后根据设计需要完成程序的其它部分,行数不限) */
struct Link * creatLink()
{
struct Link * head,*p1,*p2;
int i;
head=NULL;
p1=p2=(struct Link *)malloc(sizeof(struct Link));
for(i=0;i<20;i++)
{
p1->data=i;
if(i=0)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct Link *)malloc(sizeof(struct Link));
}
p2->next=NULL;
return head;
}
struct Link * reverseLink(struct Link * head )
{
struct Link *p1,*p2,*t;
if(head!=NULL)p1=head;
for(;p1!=NULL;)
{
p1=p1->next;
}
t=p1->next;
p1->next=head;
head=t;
return head;
}
...全文
185 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
GPU小码农 2013-04-08
  • 打赏
  • 举报
回复
还有,这个程序主要要求的就是编写 创建链表 和 反向链表 两个函数,其它函数不需要改动。求助!!!!!!
GPU小码农 2013-04-08
  • 打赏
  • 举报
回复
为什么我这个程序一运行CPU占用率急剧升高???新手不懂奥妙所在

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧