您的位置:首页 > 其它

单链表的建立,反序,插入,删除

2013-03-29 17:35 162 查看
#include <stdio.h>

#include <malloc.h>

typedef struct _node

{

int data;

struct _node *next;

}Node,*pNode;

pNode headnode = NULL;

void creatnode()

{
pNode current,head;
int temp = 0;
if(headnode == NULL)
{
headnode = (pNode)malloc(sizeof(Node));
printf("sizeof(_node)=%d\n",sizeof(Node));
}
else
{
printf("create bad\n");
return;
}
if(headnode == NULL)
{
printf("malloc error\n");
return;
}
else
{
headnode->data = 0;
}
head = headnode;
head->next = NULL;
for(temp = 0;temp < 4;temp ++)
{
current = (pNode)malloc(sizeof(Node));
if(!current)
{
printf("current malloc error\n");
return;
}
current->data = temp;
current->next = NULL;
head->next = current;
headnode->data ++;
head = current;
}

}

void printNode(pNode pnode)

{
pNode tempnode;
tempnode = pnode;
while(tempnode)
{
printf("node->data=%d\n",tempnode->data);
//printf("node addr=%x,next addr=%x\n",(unsigned int)tempnode,(unsigned int)tempnode->next);
tempnode = tempnode->next;
}

}

void invertNode(pNode pnode)

{
pNode prenode = NULL;
pNode current;
pNode pnext;
current = pnode;
while(current)
{
pnext=current->next;
if(pnext == NULL)
headnode = current;
current->next = prenode;
prenode = current;
current = pnext;
}

}

void appendToEnd(pNode pnode)

{
pNode tempnode = headnode;
while(tempnode)
{
tempnode = tempnode->next;
if(tempnode->next == NULL)
{
tempnode->next = pnode;
break;
}
}

}

void deleteNode(int data)

{
pNode tempnode = headnode;
pNode pnext = NULL;
if(tempnode->data == data)
{
headnode = headnode->next;
free(tempnode);
return;

}
while(tempnode)
{
pnext = tempnode->next;
if(pnext->data == data)
{
tempnode->next = pnext->next;
free(pnext);
break;
}
tempnode = pnext;
}

}

void main()

{
//pNode addnode = (pNode)malloc(sizeof(Node));
//addnode->next = NULL;
//addnode->data = 20;
creatnode();
printNode(headnode);
//invertNode(headnode);
//printNode(headnode);
//appendToEnd(addnode);
deleteNode(2);
printNode(headnode);
deleteNode(4);
printNode(headnode);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐