原文链接:https://blog.csdn.net/bogedaye/article/details/105460829
照着别人的网页写的,咋就是没法运行嘞?
#include <stdio.h>
#include<stdlib.h>
#include <iostream>
using namespace std;
typedef struct ListNode{
int data;
ListNode *next;
}ListNode;
// 创建链表 定义前指针、后指针。
ListNode* create(int array[]){
ListNode *p,*pre,*head;
head=new ListNode;
head->next=NULL;
pre=head;
for(int i=0;i<5;i++){
p=new ListNode;
p->data=array[i];
pre->next=p;
pre=p;
}
return head;
}
// 在以head 为节点的链表上计数X的个数
int search(ListNode* head,int x){
int count=0;
ListNode *p=head->next;
while(p!=NULL){
if(p->data=x){
count++;
}
p=p->next;
}
printf("%d",count);
return count;
}
// 将X 插入以head 为头节点的链表第pos 个位置
void insert(ListNode* head, int pos,int x ){
ListNode* p=head;
for (int i=0;i<pos-1;i++){
p=p->next;
}
ListNode *q=new ListNode;
q->data=x;
q->next=p->next;
p->next=q;
}
// 删除某个位置的元素
void del(ListNode* head,int x){
ListNode* pre=head;
ListNode* p=head->next;
while(p->next!=NULL){
if(p->data==x){
pre->next=p->next;
delete(p);
p=pre->next;
pre=p;
p=p->next;
}else{
pre=p;
p=p->next;
}
}
}
int main() {
int array[5]={1,2,3,4,5};
cout<<array[1];
ListNode *L=create(array);
printf("%d\n",search(L,1));
insert(L,3,6);
del(L,6);
L=L->next;
while(L->next!=NULL){
cout<<L->data;
L=L->next;
}
return 0;
}