有一个线性表A={3,5,2,8,1,6,4,0,9},请编写程序实现以下操作。创建单链表linkListA,并将A中的整数依次存入该列表;在以上单链表linkListA中数据元素为6的结点之后插入数据元素为7的结点;(3. 将以上单链表linkListA中的所有元素依次打印输出到控制台;4. 获取链表linkListA中的最大数据元素,并打印输出到控制台
代码及效果图如下,如有帮助,请帮忙采纳一下,谢谢。
#include <iostream>
using namespace std;
#define N 20
struct LinkList
{
int arr[N];
int length;
};
//创建链表
void CreateList(struct LinkList *lst)
{
int i,n;
lst->length = 0;
printf("请输入数据(9个):");
for (i=0;i<9;i++)
{
scanf("%d",&n);
lst->arr[lst->length] = n;
lst->length++;
}
}
//插入元素,在6之后插入7
void Insert(struct LinkList *lst)
{
int i,j;
for (i=0;i<lst->length;i++)
{
if(lst->arr[i] == 6)
{
for(j = lst->length;j>i;j--)
lst->arr[j] = lst->arr[j-1];
lst->arr[i+1] = 7; //插入7
lst->length += 1;
break;
}
}
}
//显示列表
void print(struct LinkList *lst)
{
int i;
printf("链表当前元素为:");
for (i=0;i<lst->length;i++)
{
if(i<lst->length-1)
printf("%d ",lst->arr[i]);
else
printf("%d\n",lst->arr[i]);
}
}
//找最大元素
int MaxNmb(struct LinkList *lst)
{
int max = -1;
int i;
if(lst->length <1) return -1; //error
else
{
max = lst->arr[0];
for(i=0;i<lst->length;i++)
{
if(lst->arr[i] > max)
max = lst->arr[i];
}
return max;
}
}
int main()
{
struct LinkList A;
int maxnmb;
CreateList(&A);
Insert(&A);
print(&A);
maxnmb = MaxNmb(&A);
printf("最大元素是:%d\n",maxnmb);
return 0;
}