user-0 提问: c语言链表插入问题，

回复:
user: user-0
content: 什么时候自己会改代码呢，，，，，，，，，，，，，正确代码献上，感觉和我想法有点点不一样，，，，，，， 但是我本来也不知道该是什么样子，，， void insert(int place,int innum,n head) { //输入一个数字表示位置，另一个数表示插入的数字，在每一个位置的前面插入数字， 	n t,x1,p,q; 	t=head; 	while(t->next!=NULL) { 		if(t->next->data==place) { 			x1=(n)malloc(sizeof(linklist)); 			x1->data=innum; 			x1->next=t->next;// 			t->next=x1; 			t=x1;  		}  		t=t->next; 	}   }

user: user-0
content: 引用 11 楼 fight_in_dl 的回复:引用看看代码  检查下insert函数中q是什么?  时间关系，如果可能的话，我再找时间调一下这个程序。好吧，q 我想表示成t的前一个位置，就是当遍历找到要插入的位置的时候，位置的前一个，，，，，

user: user-1
content: 引用看看代码  检查下insert函数中q是什么?  时间关系，如果可能的话，我再找时间调一下这个程序。

user: user-0
content: 引用 9 楼 fight_in_dl 的回复:引用看看代码  一个一个函数来，先读create函数。  注意第一个数要输入 -1 才结束循环。对啊，，，，这是创建链表，和我后面的插入函数有很大关系么

user: user-1
content: 引用看看代码  一个一个函数来，先读create函数。  注意第一个数要输入 -1 才结束循环。

user: user-0
content: 引用 7 楼 fight_in_dl 的回复:不过，建议取一个合适的名字表示某个类型，便于阅读和后期维护^_^谢谢提醒一般是为了好写方便，可以帮我看看代码么，或者给我点思路，，

user: user-1
content: 不过，建议取一个合适的名字表示某个类型，便于阅读和后期维护^_^

user: user-0
content: #include<stdio.h> #include<stdlib.h> typedef struct linklist {     int data;     struct linklist *next; } linklist,*n; n create() {     n head,p,q;     int num;     head=NULL;     p=(n)malloc(sizeof(linklist));     scanf("%d",&num);     p->data=num;     p->next=NULL;     while(num!=-1)     {         if(head==NULL)         {             head=p;             q=p;         }         else         {             q->next=p;             q=p;         }         p=(n)malloc(sizeof(linklist));         scanf("%d",&num);         p->data=num;         p->next=NULL;     }        return head; } void print(n head) {     n t,t1;     int i,j,m;     int count;     count=0;     t=head;     t1=head;     while(t)     {         printf("%d ",t->data);         //	t=t->next;         t=t->next;     }   printf("--------------\n");  } void count(n head) {     n t,t1;     t=head;     int i,j,m;     int count;     count=0;     for(i=0; i<9; i++)     {         count=0;         t=head;         while(t)         {             if(t->data==i)             {                 count++;             }             t=t->next;         }         printf(" %d ",count);     } } void insert(int place,int innum,n head)//输入一个数字表示位置，另一个数表示插入的数字，在每一个位置的前面插入数字， { 	n t,x1,p,q; 	t=head; 	while(t) 	{ 		if(t->data==place) 		{ 			x1=(n)malloc(sizeof(linklist)); 			x1->data=innum; 			x1->next=NULL;// 			q->next=x1->next; 			x1->next=t; 			 		} 		q=t;// 		t=t->next; 	} 	 	 } int main() {     n head;     printf("请输入链表：\n");     head=create();     print(head);     //printf("--------------\n");     //count(head);     //insert(3,5,head);  }

user: user-0
content: 引用 4 楼 fight_in_dl 的回复:引用n是这个结构体指针  嗯，代码不全，如果在别的地方有定义，是可以的。 只看题目的代码，看不出n的定义。  这个是误会了。不好意思啊，，，，，我应该发全的，，

user: user-1
content: 引用n是这个结构体指针  嗯，代码不全，如果在别的地方有定义，是可以的。 只看题目的代码，看不出n的定义。  这个是误会了。

user: user-0
content: 引用 2 楼 zuoside__lord 的回复:[quote=引用 1 楼 fight_in_dl 的回复:]  n t,x1,p,q; x1=(n)malloc(sizeof(linklist));  类似的地方都有错误，建议先考虑把语法错误修改完。  链表的实现网上范例非常多，或者你可以找一个对照学习，更快捷些。 这是其中的一篇，也可以找找别的，大同小异。 http://www.cnblogs.com/scrat/archive/2012/08/17/2644086.html谢谢[/quote]，等等，，它哪里错了，n是这个结构体指针，linklist是结构体

user: user-0
content: 引用 1 楼 fight_in_dl 的回复:n t,x1,p,q; x1=(n)malloc(sizeof(linklist));  类似的地方都有错误，建议先考虑把语法错误修改完。  链表的实现网上范例非常多，或者你可以找一个对照学习，更快捷些。 这是其中的一篇，也可以找找别的，大同小异。 http://www.cnblogs.com/scrat/archive/2012/08/17/2644086.html谢谢

user: user-1
content: n t,x1,p,q; x1=(n)malloc(sizeof(linklist));  类似的地方都有错误，建议先考虑把语法错误修改完。  链表的实现网上范例非常多，或者你可以找一个对照学习，更快捷些。 这是其中的一篇，也可以找找别的，大同小异。 http://www.cnblogs.com/scrat/archive/2012/08/17/2644086.html