自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 用栈和队列实现的停车场管理系统

停车场管理问题描述:停车场是一个能放 n 辆车的狭长通道,只有一个大门,汽车按到达的先后次序停放。若车场满了,车要停在门外的便道上等候,一旦有车走,则便道上第一辆车进入。当停车场中的车离开时,由于通道窄,在它后面的车要先退出,待它走后在依次进入。汽车离开时按停放时间收费。基本功能要求:(1) 建立三个数据结构分别是:停放栈、让路栈、等候队列。(2) 输入数据模拟管理过程

2017-08-05 14:18:33 5525 2

原创 Linux数据库编程Sqlite

新建一个学生数据库,在建一个学生数据表,进行增加和查找等操作。#include #include // 数据库的头文件int main(){ sqlite3 * database; // 打开数据库 int ret = sqlite3_open("student.db", &database); if (ret != SQLITE_OK) {

2017-08-29 08:09:10 298

原创 链式队列的复习

#ifndef __LINKQUEUE_H__#define __LINKQUEUE_H__#include "error.h"#define TRUE 1#define FALSE 0typedef int QueueData;typedef struct _node{ QueueData data; struct _node *next;}Node;typedef

2017-08-18 18:48:21 187

原创 基于TCP的服务器与客户端的搭建

#include #include #include #include #include #include #define PORT 9999int main(){ //1、创建socket int listen_socket = socket(AF_INET, SOCK_STREAM, 0); if (listen_socket == -1) { perro

2017-08-17 19:56:56 400

转载 TCP与UDP基本区别

TCP UDPTCP与UDP基本区别  1.基于连接与无连接  2.TCP要求系统资源较多,UDP较少;   3.UDP程序结构较简单   4.流模式(TCP)与数据报模式(UDP);   5.TCP保证数据正确性,UDP可能丢包   6.TCP保证数据顺序,UDP不保证   UDP应用场景:  1.面向数据报方式  2.网络数据大多为短消息 

2017-08-17 19:37:50 229

原创 OSI七层网络模型和Linux四层概念模型

以下是每层对应的各种协议:第七层:应用层 数据 用户接口,提供用户程序“接口”。 第六层:表示层 数据 数据的表现形式,特定功能的实现,如数据加密。 第五层:会话层 数据 允许不同机器上的用户之间建立会话关系,如WINDOWS 第四层:传输层 段 实现网络不同主机上用户进程之间的数据通信,可靠      与不可靠的传输,传输层的错误检测,流量控制等。 第

2017-08-17 19:23:06 444

原创 利用多线程和信号量,互斥量实现的经典的生产者与消费者模型

多线程并发应用程序有一个经典的模型,即生产者/消费者模型。系统中,产生消息的是生产者,处理消息的是消费者,消费者和生产者通过一个缓冲区进行消息传递。生产者产生消息后提交到缓冲区,然后通知消费者可以从中取出消息进行处理。消费者处理完信息后,通知生产者可以继续提供消息。要实现这个模型,关键在于消费者和生产者这两个线程进行同步。也就是说:只有缓冲区中有消息时,消费者才能够提取消息;只有消息已被处理,

2017-08-17 19:11:08 942

原创 用线程和互斥锁实现的简单的卖票系统

#include #include #include #include #include int ticket = 100; // 票// 互斥锁pthread_mutex_t mutex;// 卖票线程void *sale_ticket(void *v){ int window = (int)v; printf ("窗口 %d 开始卖票\n", windo

2017-08-15 19:22:57 1354

原创 用共享内存和信号量实现的简单的卖票系统

#ifndef __SEMAPHORE_H__#define __SEMAPHORE_H__#include #include #include union semun { int val; /* Value for SETVAL */ struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SE

2017-08-14 20:48:45 374

原创 链式栈的复习

#ifndef __LINKSTACK_H___#define __LINKSTACK_H___#define TRUE 1#define FALSE 0#include "error.h"typedef int StackData;typedef struct _node{ StackData data; struct _node *next;}Node;typ

2017-08-11 20:55:08 198

原创 守护进程的实现

#include #include #include #include #include #include int daemonize(int nochdir, int noclose){ // 1、创建子进程,关闭父进程 pid_t pid = fork(); if (pid > 0) { exit(0); } else if (pid < 0) { ret

2017-08-09 20:55:34 237

原创 用文件操作实现的通讯录

学习完文件操作这一部分之后就可以对之前做的通讯录进行修改,上一版本的通讯录可以参考我之前的一篇点击打开链接通过文件操作可以实现将好友信息保存到一个文件中去,从而在下一次运行这个程序可以从这个文件中读取我之前修改或添加过的好友信息;相比较上一版本,说简单点,就是我添加好友后退出通讯录后,下次再运行通讯录就能看到我之前添加进去的。LinkList.h文件:#ifndef __L

2017-08-08 09:27:11 410

转载 用非递归的方式遍历二叉树

1、前序遍历的非递归实现   根据先序遍历的顺序,先访问根节点,再访问左子树,后访问右子树,而对于每个子树来说,又按照同样的访问顺序进行遍历,非递归的实现思路如下:对于任一节点P,1)输出节点P,然后将其入栈,再看P的左孩子是否为空;2)若P的左孩子不为空,则置P的左孩子为当前节点,重复1)的操作;3)若P的左孩子为空,则将栈顶节点出栈,但不输出,并将出栈节点的右孩子置

2017-08-07 09:04:52 844

原创 利用堆排序中的思想实现班级分组

假设班级有四十个人,现在要实现随机分组,四个人一组并打印出来#include #include void swap(int *a, int i, int j){int tmp = a[i];a[i] = a[j];a[j] = tmp;}void printA(int *a, int len){int i;for

2017-08-06 19:51:45 262

原创 顺序栈的基本操作

#ifndef __SQSTACK_H__#define __SQSTACK_H__#define FALSE  0#define TRUE   1#define SIZE  10#include "error.h"typedef  int StackData;typedef struct _stack{StackData data[SI

2017-08-04 11:28:20 261

原创 几种基本排序的实现:选择排序,冒泡排序,插入排序,堆排序,快速排序,归并排序

#include void swap(int a[], int i, int j){int tmp = a[i];a[i] = a[j];a[j] = tmp;}void printA(int *a, int len){int i;for(i=0; i{printf("%4d",a[i]);}printf("\n");}int

2017-08-03 15:07:02 322

原创 顺序队列的基本操作

#ifndef __SQQUEUE_H__#define __SQQUEUE_H__#include "error.h"#define TRUE  1#define FALSE 0#define SIZE 10typedef int QueueData;typedef struct _queue{QueueData data[SIZE];in

2017-08-02 10:33:18 298

原创 二叉树的创建,插入,删除,输出,求高度,求度以及三种遍历方式实现

#ifndef __BTREE_H__#define __BTREE_H__#define BLEFT  0    // 表示插入二叉树的左边#define BRIGHT 1    // 表示插入二叉树的右边#define TRUE   1#define FALSE  0typedef char BTreeData;// 二叉树的结点type

2017-08-01 19:27:01 535

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除