您的位置:首页 > 理论基础 > 数据结构算法

动手实现 数据结构 之 “单向链表”

2015-05-09 22:50 609 查看
头插入单向链表 C 语言实现

#include <stdio.h>

struct node {
int data;
struct node * next;
};
int main()
{
// 头插入链表
// create list
struct node n9[10];
struct node * phead = NULL;
for(int i=9; i>=0; i--) {
n9[i].data = i*i;
n9[i].next = phead;
phead = &n9[i];
}

// insert nd after insertPos
struct node nd; nd.data = 33;
struct node * insertPos = &n9[3];
nd.next=insertPos->next;
insertPos->next = &nd;

// find 81
struct node * pos = phead;
while(pos != NULL) {
if(pos->data == 81) break;
pos = pos->next;
}
if(pos != NULL) printf("find pos->data: %d\n", pos->data);

// delete n9[2];
struct node * deletePos = &n9[9];
if(deletePos->next != NULL)
deletePos->next = deletePos->next->next;
else {
struct node * pos = phead;
while(pos != NULL) {
if(pos->next == deletePos) break;
pos = pos->next;
}
if(pos != NULL) pos->next = pos->next->next;
}

// out put
struct node * ptemp = phead;
while(ptemp != NULL) {
printf("%d ", ptemp->data);
ptemp = ptemp->next;
}
printf("\n");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: