数据结构 C语言 做了一个多小时都没做出来 求助 !!!!!!!2.7题
2个回答
展开全部
以下代码供你参考
#include<stdio.h>
#include <stdlib.h>
//顺序表就是数组,数组的逆置很简单
void sxb()
{
int a[5]={1,2,3,4,5};
int i=0,t;
for( i=0;i<5;i++ )
printf("%d ", a[i] );
printf("\n");
for( i=0;i<5/2;i++ )
{
t=a[i];
a[i]=a[5-i-1];
a[5-i-1]=t;
}
for( i=0;i<5;i++ )
printf("%d ", a[i] );
printf("\n");
}
//单链表的,采用头插法建立新表就可以了
struct node {
int n;
struct node *next ;
} *list=NULL;
void createList()
{
struct 姿让node *p;
int i;
for( i=5;i>0;i-- )
{
p=(struct node *) malloc( sizeof(struct node) );
p->n=i;
//头插法建立链表
p->next=list;
list=p ;
}
}
void showList()
{
struct 祥册清node *p=list;
while( p)
{
printf("%d ", p->n );
p=p->next;
}
printf("\n");
}
void reverseList()
{
struct node *p=NULL,*h=list,*t; //h为原表头 p为谨前新表的临时表头
while(h)
{
t=h; //分离出一个结点t
h=h->next; //h成为剩余结点的表头(保持原表的连续可遍历)
//以下两句是头插法的基本操作
t->next=p; //把t结点加入新表
p=t; //t成为新表头
}
list=p;//最终的p是新表的表头,赋值给list
}
void link()
{
createList();
showList();
reverseList();
showList();
}
int main()
{
printf("sxb:\n");
sxb();
printf("link:\n");
link();
return 0;
}
追问
一会下课回去试试 真的很感谢😃😃😃
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询