Day04 数据结构作业

1. 作业1

单链表的按位置修改

/*
 * funciotn: chnage item with position
 * @param [ in] linklist
 * @param [ in] position
 * @return 0 for success, -1 for fail
 */
int update_pos(linklist L, int pos, datatype e)
{
    if(L == NULL || L->len == 0 || pos < 1 || pos > L->len)
    	return -1;
    linklist p = L;
    for(int i = 0; i < pos; i++) p = p->next;
    p->data = e;
    return 0;
}

作业1运行结果

2. 作业2

单链表的按元素删除

/*
 * funciotn: delete item with specific key
 * @param [ in] linklist
 * @param [ in] key
 * @return 0 for success, -1 for fail
 */
int delete_data(linklist L, datatype key)
{
    if(L == NULL || L->len == 0) return -1;
    int index = search_data(L, key);
    if(index == -1) return -1;
    int flag = delete_pos(L, index);
    if(flag == -1) return -1;
    return 0;
}

作业2运行结果

3. 作业3

单链表的按元素修改

/*
 * funciotn: update target node whit specific data
 * @param [ in] the target data
 * @param [ in] new data for update
 * @return 0 for success, -1 for fail
 */
int update_data(linklist L, datatype key, datatype e)
{
    if(L == NULL || L->len == 0) return -1;
    int index = search_data(L, key);
    if(index == -1) return -1;
    int flag = update_pos(L, index, e);
    if(flag == -1) return -1;
    return 0;
}

作业3运行结果

4. 作业4

单链表的空间释放

/*
 * funciotn: free space
 * @param [ in] linklist
 */
void destroy(linklist L)
{
    while(L->next) delete_head(L);
    free(L);
    L = NULL;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值