ITfeng

 

2012年4月22日

用循环数组实现队列

摘要: //以让数组得到充分的利用,所以采用循环数组//队列为空,则front==rear 如果队列满了,(rear+1)%N=front 数组中最后一个元素未利用 是为了区分空和满的情况 #include<stdio.h>#include<stdlib.h>#define N 100typedef struct queue{int store[N];int front;int rear;}Queue;void init_queue(Queue*q) {q->front=q->rear=0;}void inqueue(Queue*q,int data){if((q- 阅读全文

posted @ 2012-04-22 21:14 ITfeng 阅读(4296) 评论(0) 推荐(0) 编辑

2012年4月21日

链表实现队列

摘要: 插入队列时,注意判断队列是否为空出队列时,注意判断:1 队列是否为空 2 是否是最后一个元素出队列 3 正常出队列#include<stdio.h>#include<stdlib.h>typedef struct list{int data;struct list*next;}List;typedef struct queue{List*front;List*rear;}Queue;void init_queue(Queue*q){q->front=q->rear=NULL;}void inqueue(Queue *q,int data){List*newn 阅读全文

posted @ 2012-04-21 23:23 ITfeng 阅读(238) 评论(0) 推荐(0) 编辑

用栈实现队列

摘要: #include<stdio.h>#include<stdlib.h>typedef struct list{int data;struct list*next;}List;typedef struct stack{List*top;}Stack;Stack*A;Stack*B;void init_stack(Stack*s){s->top=NULL;}void push_stack(Stack*s,int data){List*newnode=(List*)malloc(sizeof(List));newnode->data=data;newnode-&g 阅读全文

posted @ 2012-04-21 22:13 ITfeng 阅读(178) 评论(0) 推荐(0) 编辑

栈的应用-括号匹配

摘要: #include<stdio.h>#include<stdlib.h>#define N 100typedef struct stack{char store[N];int top;}Stack;void init_stack(Stack *s);void push_stack(Stack *s,char data);char pop_stack(Stack *s);int match(char x, char y);int main(){char *table;int flag=1;Stack*s=(Stack*)malloc(sizeof(Stack));init_ 阅读全文

posted @ 2012-04-21 21:28 ITfeng 阅读(184) 评论(0) 推荐(0) 编辑

单链表转成双向循环链表

摘要: #include<stdio.h>#include<stdlib.h>struct node{int data;struct node*next;};struct Binode{int data;struct Binode*next;struct Binode*prev;};struct Binode*func(struct node*head);int main(){//新建衣蛾单链表struct node*head=NULL;struct node*temp;struct node*newnode;struct Binode*Bihead=NULL;struct B 阅读全文

posted @ 2012-04-21 19:58 ITfeng 阅读(759) 评论(0) 推荐(0) 编辑

大华面试总结

摘要: 今天去面试,笔试部分出了三道题,第一题是文件的打包;第二个是两个大数相乘;第三题是单链表改成循环链表第三题算是做出来了,但是前面两题没有想法。尽管才做出一题,但是还是参加了第二轮面试。考官第一问:进程和线程的区别,答对了第二问:线程中栈和堆的区别我说不知道,不过现在想来老师讲过,malloc开辟的空间在堆区;临时变量在栈区第三问:考官还算好,再问那么堆和栈,临时变量在那个区我脑子一片糊涂,马上说堆区,考官说今天的面试结束。就这样被咔嚓掉了。我总结我今天失败的原因:1回答问题没有三思而后行,回答不经脑子,其实这个问题答案我是知道的2 不懂装懂,这也许是考官最痛恨的,也许我说不知道会比我说在堆区更 阅读全文

posted @ 2012-04-21 16:14 ITfeng 阅读(981) 评论(0) 推荐(0) 编辑

2012年4月18日

数据结构-栈实现(数组和队列)

摘要: 链表实现栈#include<stdio.h>#include<stdlib.h>typedef struct list{int data;struct list *next;}List;typedef struct stack{List*top;}Stack;void init_stack(Stack*s){s->top=NULL;}void push_stack(Stack *s,int data){List *newnode=(List*)malloc(sizeof(List));newnode->data=data;newnode->next=s 阅读全文

posted @ 2012-04-18 21:24 ITfeng 阅读(204) 评论(0) 推荐(0) 编辑

2012年4月13日

C语言学习笔记-数组

摘要: 一.C语言中参数传递传递都是传值,都是对数值的拷贝的一个副本二.递归与迭代用递归能够解决的问题,一定能用迭代(循环)解决(1)递归的特点:思路简单,运算较慢使用递归,关键是找到递归的出口递归由于不停地出栈和入栈,并且前一次的结果并没有保留,下一次还得计算,所以效率是比较低的改进递归算法的一种方法是将前面的计算结果进行保留,提高效率(2)迭代就是用循环解决问题,迭代算法的效率是很高的三.有关数组的理解(1)数组名永远是数组中第一个元素的地址(2)*和[]是一样的(3)二维数组也可以看做是一维数组,只不过数组中每个元素又是一个数组四.数组小练int array[10];int *ap=array+ 阅读全文

posted @ 2012-04-13 21:25 ITfeng 阅读(914) 评论(0) 推荐(0) 编辑

C语言学习笔记-运算符笔记

摘要: 一.运算符的优先级算数运算符>移位运算符>关系运算符>逻辑运算符>赋值运算符,的运算等级是最低的value=value|1<<x;这里<<比|等级高,先执行移位,在执行|,最后赋值二.在赋值操作时要考虑的是类型转换比如int型转化为char型时要截短三.关于++和--a++是先取a的值,然后a再自增++a是先自增a的值,然后在取自增后a的值--一样的原理 阅读全文

posted @ 2012-04-13 14:45 ITfeng 阅读(166) 评论(0) 推荐(0) 编辑

C语言学习笔记1

摘要: 一.关于define 跟typedef的理解:define 是用一个名字来代替另一个名字typedef是对一个已经存在的类型 定义一个别名(1)#define ptr-int int *ptr-int a,b;是定义了一个int *类型指针变量a,定义一个int型变量b他只是简单的替代,在预编译时替代(2)typedef int * ptr-int;ptr-int a,b;是定义了一个int*的两个指针变量a和b二.对C语言中数据类型的理解C语言对不同类型的数据用不同类型的变量来进行存储C语言数据类型可以分为4种,有整型,实型,指针,聚合类型,前面三种是基本的类型整型有short,int,lo 阅读全文

posted @ 2012-04-13 13:56 ITfeng 阅读(189) 评论(0) 推荐(0) 编辑

导航