求一道数据结构算法题目答案。。。 10
设Head为带表头结点的单链表的头指针,试写出算法:若为非空表,则输出首结点和尾结点的值(data值);否则输出:“Emptylist!”.(要构建单链表)用C语言做的。...
设Head为带表头结点的单链表的头指针,试写出算法:若为非空表,则输出首结点和尾结点的值(data值);否则输出:“Empty list!”.(要构建单链表)
用C语言做的。。
谢谢!可不可以再帮我解决一道:设n个元素的线性表顺序存储在一维数组st[l..maxlen]的前n个位置上,试将新元素e插入表中第i-1和第i个元素之间,写出算法。 展开
用C语言做的。。
谢谢!可不可以再帮我解决一道:设n个元素的线性表顺序存储在一维数组st[l..maxlen]的前n个位置上,试将新元素e插入表中第i-1和第i个元素之间,写出算法。 展开
1个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;//结点数据类型
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
/*函数功能:建立带头结点的单链表,并为各结点赋值
函数参数:整型变量n,表示单链表元素(除头结点外)的个数
函数的返回值:指向单链表头结点的指针
*/
LNode *CreatList_L(int n)
{
struct LNode *p,*q,*Head;
int i;
Head=(LinkList) malloc (sizeof (LNode));
Head->next=NULL;
/*先建立一个带头结点的单链表*/
q=Head;
if(n!=0)
{
for(i=0;i<n;i++)
{
p=(LinkList) malloc (sizeof (LNode));
/*生成新结点*/
scanf("%d",&p->data);
/*输入元素值*/
q->next=p;
q=p;
}
p->next=NULL;
}
return Head;
/*返回指向单链表头结点的指针*/
}
/*函数功能:输出单链表的首结点和尾结点的data域或Empty list
函数参数:结构体指针L,指向单链表的头结点;
整型变量n,表示单链表元素(除头结点外)的个数
函数的返回值:无
*/
void PrintLinkList_L(LNode *Head,int n)
{
LNode *p;
int i;
p=Head->next;
if(n==0)
printf("Empty list!\n");
else
{
printf("首结点的值为:%d\n",p->data);
for(i=1;i<n;i++)
{
p=p->next;
}
printf("尾结点的值为:%d\n",p->data);
}
}
void main()
{
int n;
LNode *Head;
printf("请输入单链表元素的个数<如7>:");
scanf("%d",&n);
if(n!=0)
{
printf("请输入结点的data域,必须为整数,以回车或者空格作为间隔:<如:34 20 2 3 10 51 12>");
}
Head=CreatList_L( n);
printf("\n");
printf("新建的单链表L如下:\n");
PrintLinkList_L( Head, n);
}
#include <stdlib.h>
typedef int ElemType;//结点数据类型
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
/*函数功能:建立带头结点的单链表,并为各结点赋值
函数参数:整型变量n,表示单链表元素(除头结点外)的个数
函数的返回值:指向单链表头结点的指针
*/
LNode *CreatList_L(int n)
{
struct LNode *p,*q,*Head;
int i;
Head=(LinkList) malloc (sizeof (LNode));
Head->next=NULL;
/*先建立一个带头结点的单链表*/
q=Head;
if(n!=0)
{
for(i=0;i<n;i++)
{
p=(LinkList) malloc (sizeof (LNode));
/*生成新结点*/
scanf("%d",&p->data);
/*输入元素值*/
q->next=p;
q=p;
}
p->next=NULL;
}
return Head;
/*返回指向单链表头结点的指针*/
}
/*函数功能:输出单链表的首结点和尾结点的data域或Empty list
函数参数:结构体指针L,指向单链表的头结点;
整型变量n,表示单链表元素(除头结点外)的个数
函数的返回值:无
*/
void PrintLinkList_L(LNode *Head,int n)
{
LNode *p;
int i;
p=Head->next;
if(n==0)
printf("Empty list!\n");
else
{
printf("首结点的值为:%d\n",p->data);
for(i=1;i<n;i++)
{
p=p->next;
}
printf("尾结点的值为:%d\n",p->data);
}
}
void main()
{
int n;
LNode *Head;
printf("请输入单链表元素的个数<如7>:");
scanf("%d",&n);
if(n!=0)
{
printf("请输入结点的data域,必须为整数,以回车或者空格作为间隔:<如:34 20 2 3 10 51 12>");
}
Head=CreatList_L( n);
printf("\n");
printf("新建的单链表L如下:\n");
PrintLinkList_L( Head, n);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询