#include <stdlibh> /含ma l l o c ( ) 的头文件/
#include <stdioh>
//①定义链表数据结构
struct node
{
int num;
struct node next;
};
//函数声明
struct node creat();
void print();
main( )
{
struct node head;
head=NULL; //②建一个空表
head=creat(head);/创建单链表/
print(head);/打印单链表/
}
//
struct nodecreat(struct node head)/返回的是与节点相同类型的指针/
{
struct nodep1,p2;
int i=1;
//③利用malloc ( )函数向系统申请分配一个节点
p1=p2=(struct node)malloc(sizeof(struct node));/新节点/
printf("请输入值,值小于等于0结束,值存放地址为:p1_ADDR= %d\n",p1);
scanf("%d",&p1->num);/输入节点的值/
p1->next=NULL;/将新节点的指针置为空/
while(p1->num>0)/输入节点的数值大于0/
{
//④将新节点的指针成员赋值为空。若是空表,将新节点连接到表头;若是非空表,将新节点接到表尾;
if(head==NULL)
head=p1;/空表,接入表头/
else
p2->next=p1;/非空表,接到表尾/
p2=p1;
p1=(struct node)malloc(sizeof(struct node));/下一个新节点/
i=i+1;
printf("请输入值,值小于等于0结束,值存放地址为:p%d_ADDR= %d\n",i,p2);
scanf("%d",&p1->num);/输入节点的值/
//⑤判断一下是否有后续节点要接入链表,若有转到3 ),否则结束;
}
//==============原来程序更正部分:(多谢@daling_datou提醒)================================
free(p1); //申请到的没录入,所以释放掉
p1=NULL; //使指向空
p2->next = NULL; //到表尾了,指向空
printf("链表输入结束(END)\n");
//==============================================
return head;/返回链表的头指针/
}
//
void print(struct nodehead)/出以head为头的链表各节点的值/
{
struct node temp;
temp=head;/取得链表的头指针/
printf("\n\n\n链表存入的值为:\n");
while(temp!=NULL)/只要是非空表/
{
printf("%6d\n",temp->num);/输出链表节点的值/
temp=temp->next;/跟踪链表增长/
}
printf("链表打印结束!!");
}
注意:Arrayssort()不能接收一个二维数组作为参数,所以要做以下修改,你复制一下再运行吧
1
2
3
4
5
6
int a[][] = new int[][]{{38,7,57,62},{52,36},{22,79}};
for(int i=0;i<alength;i++){
Arrayssort(a[i]);
for(int j=0;j<a[i]length;j++)
Systemoutprintln(a[i][j]);
}
以上就是关于我用sort函数排序vector数组,为什么得到排序之后的数组内的元素全部为0全部的内容,包括:我用sort函数排序vector数组,为什么得到排序之后的数组内的元素全部为0、Arrays.sort数组排序命令怎么不管用、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)