本帖最后由 ccjgalaxy 于 2009-8-25 10:59 编辑
下面是一个链表的插入函数
#include <stdio.h>
#include <stdlib.h>
struct Node{
int data;//数据域
Node * next;//指针域
};
/**************************************************************************************
*函数名称:insert
*函数功能:在连表中插入元素.
*输入:root 链表头指针,idx新元素插入位置,d 新元素中的数据域内容
*输出:无
*************************************************************************************/
void insert(Node * root,int idx,int d){
Node * tmp = root;
for(int i = 0;i<idx;i++){ //主要是这个问题, 这里为什么要采用循环?
tmp = tmp->next;
if(tmp == NULL) return ;
}
Node * tmp2 = new Node;
tmp2->data = d;
tmp2->next = tmp->next;//既然已经把temp->next 已经赋值给了tmp2->next;
tmp->next = tmp2; //为什么还要将temp2在赋值给tmp->next ?
} |