4.单链表查找接点并删除

原创 2012年03月24日 00:07:39
#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;
}

相关文章推荐

判断一个单链表是否有环及环的链接点

给定一个单链表,只给出头指针h: 1、如何判断是否存在环? 2、如何知道环的长度? 3、如何找出环的连接点在哪里? 4、带环链表的长度是多少?...

判断一个单链表是否有环及环的链接点(转)

判断一个单链表是否有环及环的链接点(转) (2011-09-16 10:24:10) 转载▼   分类: 学习笔记 给定一个单链表,只给出头指...

lintcode 判断一个单链表是否有环及环的链接点

今天又一次做了这个参见的题目,不过是在不想写东西了,随手转载一篇 给定一个单链表,只给出头指针h: 1、如何判断是否存在环? 2、如何知道环的长度? 3...

判断一个单链表是否有环及环的链接点(转)

给定一个单链表,只给出头指针h: 1、如何判断是否存在环? 2、如何知道环的长度? 3、如何找出环的连接点在哪里? 4、带环链表的长度是多少?   解法: 1...

判断一个单链表是否有环及环的链接点

给定一个单链表,只给出头指针h: 1、如何判断是否存在环? 2、如何知道环的长度? 3、如何找出环的连接点在哪里? 4、带环链表的长度是多少?   解法: 1、对于问题1,使用追赶的方法...

判断两个链表是否相交和一个单链表是否有环及环的链接点(转)

给定一个单链表,只给出头指针h: 1、如何判断是否存在环? 2、如何知道环的长度? 3、如何找出环的连接点在哪里? 4、带环链表的长度是多少?   解法: 1...

4,常数时间内删除单链表中某结点

问题: 一个单链表,很长,遍历一遍很慢,我们仅知道一个指向某节点的指针pNode,而我们又想删除这个节点。 思路: 将该结点的下一个结点的内容拷贝到当前结点,然后删除下一个结点。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:4.单链表查找接点并删除
举报原因:
原因补充:

(最多只允许输入30个字)