【数据结构】
RobertLab
全栈不是一个岗位,而是一种思维。
展开
-
判断一个单链表是否有环及环的链接点
给定一个单链表,只给出头指针h: 1、如何判断是否存在环? 2、如何知道环的长度? 3、如何找出环的连接点在哪里? 4、带环链表的长度是多少? 解法: 1、对于问题1,使用追赶的方法,设定两个指针slow、fast,从头指针开始,每次分别前进1步、2步。如存在环,则两者相遇;如不存在环,fast遇到NULL退出。 2、对于问题2,记录下问题1的碰转载 2014-09-14 16:08:06 · 772 阅读 · 0 评论 -
C语言中,栈的操作
#include #include #include //动态栈内核:链表 typedef struct Node { int data; struct Node *pNext; }NODE,* PNODE; //栈 typedef struct Stack { PNODE pTop; //指向栈顶元素 PNODE pBottom; //指原创 2014-09-15 16:16:15 · 638 阅读 · 0 评论 -
队的创建,出队,入队,遍历等操作
#include #include //宏定义 #define len 6 //静态队列(内核:数组) typedef struct Queue { int *pBase; //存放队元素的数组 int front; //队列的第一个元素的下标 int rear; //队列的最后一个元素的下一个元素的下标 }QUEUE,*PQUEUE;原创 2014-09-15 17:00:59 · 773 阅读 · 0 评论 -
C语言中,链表的创建,插入,删除,遍历,求链表长度,排序等
#include #include #include //定义结点 typedef struct Node { int data; struct Node * pNext; }NODE,*PNODE; //函数声明 PNODE create_list(); //创建链表 void traverse_list(PNODE pHead); //遍历链表 i原创 2014-09-15 16:12:36 · 1622 阅读 · 0 评论