链表使用总结
来源:互联网 发布:厨具收纳 知乎 编辑:程序博客网 时间:2024/04/30 16:19
在创建链表时,需要逐个创建结点,创建结点包括3点:
(1),为结点分配内存单元
(2),把数据存储到结点中
(3),把结点插入到链表中
遍历链表
删除结点也包含3点:
(1),定位要删除的结点
(2),改变前一个结点,从而使它“绕过”删除结点
(3),调用free函数收回删除结点占用到内存空间
#include<stdio.h>
#include<stdlib.h>
typedef struct{
int num;
char *name;
}part;
int main(void){
struct node{
int num;
char *name;
};
struct node node1;
struct node * new_node;
/*******创建结点******/
struct linknode{
int value;
struct linknode * next;
};
struct linknode *first=NULL;
struct linknode *linknode1;
linknode1=(struct linknode *)malloc(sizeof(struct linknode));
linknode1->value=100;
linknode1->next=first;
first=linknode1;
struct linknode * linknode2;
linknode2=(struct linknode *)malloc(sizeof(struct linknode));
linknode2->value=200;
linknode2->next=first;
first=linknode2;
/*******遍历链表*******/
while(first!=NULL){
printf("linknode:%d\n",first->value);
first=first->next;
}
#include<stdlib.h>
typedef struct{
int num;
char *name;
}part;
int main(void){
struct node{
int num;
char *name;
};
struct node node1;
struct node * new_node;
/*******创建结点******/
struct linknode{
int value;
struct linknode * next;
};
struct linknode *first=NULL;
struct linknode *linknode1;
linknode1=(struct linknode *)malloc(sizeof(struct linknode));
linknode1->value=100;
linknode1->next=first;
first=linknode1;
struct linknode * linknode2;
linknode2=(struct linknode *)malloc(sizeof(struct linknode));
linknode2->value=200;
linknode2->next=first;
first=linknode2;
/*******遍历链表*******/
while(first!=NULL){
printf("linknode:%d\n",first->value);
first=first->next;
}
/********删除结点********/
struct linknode *curr;
struct linknode * pre;
curr=first;
pre=NULL;
while(curr!=NULL&&curr->value!=100)
{
pre=curr;
curr=curr->next;
}
if(curr)
pre->next=curr->next;
free(curr);
part part1;
part1.num=25;
part1.name="zhang";
node1.num=10;
node1.name="zheng";
printf("1.%s has %d dollars.\n",node1.name,node1.num);
new_node=&node1;
(*new_node).num=15;// .
printf("2.%s has %d dollars.\n",node1.name,node1.num);
new_node->num=20;// ->
printf("3.%s has %d dollars.\n",node1.name,node1.num);
printf("4.%s has %d dollars.\n",part1.name,part1.num);
return 0;
}
/*
在创建链表时,需要追个创建结点,创建结点包括3点:
(1),为结点分配内存单元
(2),把数据存储到结点中
(3),把结点插入到链表中
删除结点也包含3点:
(1),定位要删除的结点
(2),改变前一个结点,从而使它“绕过”删除结点
(3),调用free函数收回删除结点占用到内存空间
*/
0 0
- 链表使用总结
- mysql - 内存表使用总结
- 使用总结
- Filter链使用及FilterConfig总结(二)
- mysql内存表heap使用总结
- mysql内存表heap使用总结
- mysql内存表heap使用总结
- MYSQL 内存表的使用总结
- 总结2-字典表的使用
- Qt样式表的使用总结
- 【eXtremeComponents总结系列】使用总结
- 【eXtremeComponents总结系列】使用总结
- AFNetworking使用总结 与使用
- Notification使用总结(基本使用)
- Tiles使用心得,使用总结
- WSE使用总结
- MASM宏使用总结
- 水晶报表使用总结
- Fragment详解之五——Fragment间参数传递
- ogr2gor sqlserver转geojson
- 网站优化有价值的内容来自于你用心的积累和分析
- Codeforces Round #318 [RussianCodeCup Thanks-Round] (Div. 2) B 暴力
- 实体店关闭潮下,上海K11如何玩转邮件营销?
- 链表使用总结
- Spring Security 自定义登录验证与自定义回调地址
- matlab 三个向量数据绘制曲面图
- 广度优先遍历(Breadth-FirstTraversal)
- java-类型转换小结
- Android - 文件读写操作 总结
- **JAVASCRIPT** 浏览器对象二
- linux下安装zmq
- Nginx初接触