#include <cstdlib>
#include <iostream>
using namespace std;
//定义单链表的接点
typedef struct Node{
int data;
struct Node * next;
}Nodes;
//创建链表 头插法
void createListHead(Node * &node ,int data[],int length){
Node * q;//指向新创建的接点
//创建头结点
node=(Node *)malloc(sizeof(Node));
node->next=NULL;
int i;
for(i=length;i>=1;i--){
q=(Node *)malloc(sizeof(Node));
q->data=data[i];
q->next=node->next;
node->next=q;
}
}
//遍历单链表
void showList(Node * node){
Node * p;//指向当前遍历的接点
if(node!=NULL)
p=node->next;
while(p!=NULL){
printf("%d-->",p->data);
p=p->next;
}
}
//查找接点并删除 成功返回1 失败返回0
int deleteNode(Node * &node ,int x){
Node * p, *q;
p=node;
while(p->next!=NULL){//查找位置
if(p->next->data==x) break;
p=p->next;
}
//删除
if(p->next==NULL){
return 0;//没有查找到
}
else{
q=p->next;
p->next=p->next->next;
free(q);
return 1;
}
}
int main(int argc, char *argv[])
{
Node * node=NULL;
int data[11];
int i;
for(i=1;i<=10;i++){
data[i]=i*i ;
}
createListHead(node ,data,10);
showList(node);
deleteNode(node ,64);
printf("\n");
showList(node);
system("PAUSE");
return EXIT_SUCCESS;
}
4.单链表查找接点并删除
最新推荐文章于 2022-07-28 19:18:56 发布