个元素前面 个元素放在第i 链表将第j_单链表第i个元素头里插入元素

单链表第i个元素之前插入元素

#define TRUE 1

#define FALSE 0

typedef int Status;

typedef struct student{

char number[11];

char name[11];

char sex;        /*  M F or N*/

int age;

char tel[15];

char addr[50];

float math;         /*五门课成绩*/

float english;

float chemistry;

float physics;

float history;

float average;  /*平均分*/

}Item;

typedef struct node{

Item item;

struct node *next;

}Node;

typedef  Node * List;

/*向第i个元素前插入一条数据*/

Status Insert(List * plist,int i,Item item){

Node * pnode = *plist;

Node * pnew;

int j=1;

if(i<1||i>ListItemCount(plist))

return FALSE;

else if(i==1){

CopyToNode(item,pnew);

pnew->next = pnode;

*plist = pnew;

return TRUE;

}

while(pnode!=NULL&&j

pnode = pnode->next;

j++;

}

if(!pnode||j>i)

return FALSE;

CopyToNode(item,pnew);

pnew->next = pnode->next;

pnode->next = pnew;

return TRUE;

} /*上面这段代码有问题,不知出在哪里?大神们路过帮小弟看一下,感激不尽*/

/*局部函数定义*/

static void CopyToNode(Item item,Node *pnode){

pnode->item = item;

}

分享到:

------解决方案--------------------

参考一下下面的代码:在第pos个节点的前面插入一个新的结点,该节点的值是val, 并且pos的值是从1开始

bool insert_list(PNODE pHead, int pos, int val)

{

int i = 0;

PNODE p = pHead;

while (NULL!=p && i

{

p = p->pNext;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值