c语言link 1,针对以下C语言程序,请按要求回答问题。 已知link. c源程序如下: /*link. c程序对单向链表进行操作,首先建立一个单向链表,然后根据用户的选择可以对其进行插入结点、...

针对以下C语言程序,请按要求回答问题。

已知link. c源程序如下:

/*link. c程序对单向链表进行操作,首先建立一个单向链表,然后根据用户的选择可以对其进行插入结点、删除结点和链表反转操作*/

#include<stdio.h>

#include<stdlib.h>

typedef struct list_node*list_pointer; //定义链表指针

typedef struct list_node //定义链表结构

int data;

list_pointer link;

list_node;

//用到的操作函数

list_pointer create(); //建立一个单向链表

void insert(list_pointer*p_ptr, list_pointer node);

//在node后加入一个新的结点

void delete_node(list_pointer*p_ptr, list_pointer trail, list_pointer node);

//删除前一个结点是trail的当前结点node

void print(list_pointer*p_ptr); //打印链表结点中的值

list_pointer invert(list_pointer lead); //反转链表

int main()

list_pointer ptr=NULL;

list_pointer node, trail;

list_pointer * p=&ptr;

int choose, location, i;

printf("you should create a link first:\n");

prt=create(); //*ptr 指向链表的第一个结点*/

print(ptr);

//根据用户的不同选择进行相应的操作;

printf("input number 0, you can quit the program\n");

printf("input number 1, you can insert a new node to link\n");

printf("input number 2, you can delete a node from the linkkn");

printf("input number 3, you can invert the link\n");

printf("please input you choicekn");

scanf(" %d", &choose)

while(choose!=0)

switch(choose)

case 1:

i=1;

while(i<location)

node=node->link;

i++;

insert(p,node); /*p为指向ptr的指针*/

print(ptr);

break;

case 2:

printf("you will delete a node from the link\n");

printf("please input the location of the node:\n");

scanf("%d", &location);

node=ptr;

if(location==1)

trail=NULL;

trail=ptr;

i=1;

while<i<location)

trail=trail->link;

i++;

node=trail->link;

delete_node(p, trail, node);

print(ptr);

break;

case 3:

printf("you will invert the link\n");

ptr=invert (ptr)

print(ptr);

break;

default :

break

return -1:

printf("please input you choice\n");

scanf("%d",&choose);

return 0;

//根据用户的输入值建立一个新的单向链表:

list_pointer create()

int i, current, length;

list_pointer p1, p2, head;

printf("please input the node number of the link:\n");

scanf("%d", &length);

printf("the number of the link is: %d", length);

printf("please input the data for the link node: \n");

i=0;

p1=p2=(list_pointer)malloc(sizeof(list_node));

head=p1;

for(i=1; i<length; i++)

scanf("%d", &current);

p1->data=current;

p2->link=p1;

p2=p1;

p1=(list_pointer)malloc(sizeof(list_node));

p2->link=NULL;

return head;

设计一组测试用例,尽量使main函数的语句覆盖率能达到100%。如果认为该函数的语句覆盖率无法达到100%,需要说明原因。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值