1.连接两个单向链表,排序后输出!写出代码!
2.C语言能不能进行面向对象程序设计和编程?为什么?
2.C语言能不能进行面向对象程序设计和编程?为什么?
解决方案 »
- 如何判断list里面内容。
- c语言的typedef unsigned short int16u; 这个咋在java表示?
- 麻烦帮忙看一个异常...
- 子线程join()的疑问!join后子线程还是并发的么?
- 为什么java中一个文件中的几个类编译后会变成几个.class文件?
- 求助啊~是在没时间学了~大家帮个忙
- 用utf-8编码(encode)unicode码时不会有信息损失,但禁止用utf-8解码非utf-8编码的字节流。总之Utf-8可以编码任何unicode 码,但只能解码
- 怎样才能让javap的输出到文本文件?
- telnet 交互,返回的是上一次指令结果【急,请高手赐教】
- 请教大侠:简单io及内容读入JComboBox?
- java线程a调用b.join后a线程处于什么状态
- 线程问题,请高手解决
C++可以进行面向对象程序设计和编程P1,P2暂定为两个链表的头且两链表有序(这很容易做到)
while(p1)
{
while(p1->data>p2->data&&p2)
{
int *q;
q=p1->next;
p1->next=p2;
p2->next=q;
p2=p2->next;
p1=p->next->next;
}
while(p1->next->data<=p2->data&&p1)
{
int *q;
q=p1->next;
p1->next=p2;
p2->next=q;
p1=p1->next;
p2=p2->next->next;
}
}
就这么个思路.......直接写的没有调试...LZ参考下吧(用C写的...JAVA实现起来要简单得多)
* @author lybjust
*
* 实现了一个链表的插入,查询,打印,
* 两个链表链接功能
* 仅供参考
*/
int length;
ListNode firstNode; public void connect(Linked L, Linked T) {
ListNode p1 = L.firstNode; // 遍历L链表,p1指向L头部
ListNode p2 = T.firstNode; // 遍历T链表,p2指向T头部
while (p1.link != null) {
p1 = p1.link; // 直到尾端
}
p1.link = p2;
} public void insertLastNode(String item) {
ListNode N = new ListNode();
N.item = item;
N.link = null;
if (firstNode == null) {
firstNode = N;
} else {
ListNode p = firstNode; // 遍历链表
while (p.link != null) {
p = p.link; // 直到尾端
}
p.link = N;
}
length++;
} public void insertSecondNode(String item) {
ListNode newNode = new ListNode();
newNode.item = item;
newNode.link = firstNode.link;
firstNode.link = newNode;
} public void print() {
ListNode N = firstNode;
while (N != null) {
System.out.print(N.item);
N = N.link;
if (N != null) {
System.out.print(",");
}
}
} public void size() {
System.out.println(length);
} public void printItem(int i) {
ListNode p = firstNode;
int j = i;
while ((i > 1) && (p != null)) {
p = p.link;
i--;
}
if (i == 1 && (p != null)) {
System.out.println(p.item);
}
} public static void main(String[] args) {
// TODO Auto-generated method stub
Linked L = new Linked(); //第一个链表
L.insertLastNode("A");
L.insertLastNode("C");
L.insertLastNode("D");
L.insertSecondNode("B"); //实现一个从中间插入节点 Linked T = new Linked(); //第二个链表
T.insertLastNode("a");
T.insertLastNode("c");
T.insertLastNode("d");
T.insertSecondNode("b"); //实现一个从中间插入节点 System.out.println("链表合并前:");
L.print();
System.out.println("");
System.out.println("链表合并后:");
L.connect(L, T);
L.print();
}}